category_theory.sites.sheafMathlib.CategoryTheory.Sites.Sheaf

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

chore(category_theory): simps should not add hom lemmas (#18742)

@[simps] should not be used to simplify the hom field of a category instance.

Very little needs to be changed when removing it.

However the problem in https://github.com/leanprover-community/mathlib4/pull/3244 with a proof by simp failing seems to be implicated by this problem. If we remove the @[simps] generated lemma for Hom there, the original proof works (although is extremely slow).

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -373,7 +373,7 @@ instance : has_add (P ⟶ Q) :=
 instance : add_comm_group (P ⟶ Q) :=
 function.injective.add_comm_group (λ (f : Sheaf.hom P Q), f.1)
   (λ _ _ h, Sheaf.hom.ext _ _ h) rfl (λ _ _, rfl) (λ _, rfl) (λ _ _, rfl)
-  (λ _ _, by { dsimp at *, ext, simpa [*] }) (λ _ _, by { dsimp at *, ext, simpa [*] })
+  (λ _ _, by { ext, simpa [*] }) (λ _ _, by { ext, simpa [*] })
 
 instance : preadditive (Sheaf J A) :=
 { hom_group := λ P Q, infer_instance,

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -330,9 +330,9 @@ def sheafToPresheaf : Sheaf J A ⥤ Cᵒᵖ ⥤ A
 #align category_theory.Sheaf_to_presheaf CategoryTheory.sheafToPresheaf
 -/
 
-instance : Full (sheafToPresheaf J A) where preimage X Y f := ⟨f⟩
+instance : CategoryTheory.Functor.Full (sheafToPresheaf J A) where preimage X Y f := ⟨f⟩
 
-instance : Faithful (sheafToPresheaf J A) where
+instance : CategoryTheory.Functor.Faithful (sheafToPresheaf J A) where
 
 #print CategoryTheory.Sheaf.Hom.mono_of_presheaf_mono /-
 /-- This is stated as a lemma to prevent class search from forming a loop since a sheaf morphism is
@@ -716,7 +716,7 @@ for the category of topological spaces, topological rings, etc since reflecting
 hold.
 -/
 theorem isSheaf_iff_isSheaf_forget (s : A ⥤ Type max v₁ u₁) [HasLimits A] [PreservesLimits s]
-    [ReflectsIsomorphisms s] : IsSheaf J P ↔ IsSheaf J (P ⋙ s) :=
+    [CategoryTheory.Functor.ReflectsIsomorphisms s] : IsSheaf J P ↔ IsSheaf J (P ⋙ s) :=
   by
   rw [is_sheaf_iff_is_sheaf', is_sheaf_iff_is_sheaf']
   apply forall_congr' fun U => _
Diff
@@ -720,7 +720,7 @@ theorem isSheaf_iff_isSheaf_forget (s : A ⥤ Type max v₁ u₁) [HasLimits A]
   by
   rw [is_sheaf_iff_is_sheaf', is_sheaf_iff_is_sheaf']
   apply forall_congr' fun U => _
-  apply ball_congr fun R hR => _
+  apply forall₂_congr fun R hR => _
   letI : reflects_limits s := reflects_limits_of_reflects_isomorphisms
   have : is_limit (s.map_cone (fork.of_ι _ (w R P))) ≃ is_limit (fork.of_ι _ (w R (P ⋙ s))) :=
     is_sheaf_for_is_sheaf_for' P s U R
Diff
@@ -7,7 +7,7 @@ import CategoryTheory.Limits.Preserves.Shapes.Equalizers
 import CategoryTheory.Limits.Preserves.Shapes.Products
 import CategoryTheory.Limits.Yoneda
 import CategoryTheory.Preadditive.FunctorCategory
-import CategoryTheory.Sites.SheafOfTypes
+import CategoryTheory.Sites.IsSheafFor
 
 #align_import category_theory.sites.sheaf from "leanprover-community/mathlib"@"2efd2423f8d25fa57cf7a179f5d8652ab4d0df44"
 
Diff
@@ -143,7 +143,7 @@ theorem isLimit_iff_isSheafFor :
   rw [((cone.is_limit_equiv_is_terminal _).trans (is_terminal_equiv_unique _ _)).nonempty_congr]
   rw [Classical.nonempty_pi]; constructor
   · intro hu E x hx; specialize hu hx.cone
-    erw [(hom_equiv_amalgamation hx).uniqueCongr.nonempty_congr] at hu 
+    erw [(hom_equiv_amalgamation hx).uniqueCongr.nonempty_congr] at hu
     exact (unique_subtype_iff_exists_unique _).1 hu
   · rintro h ⟨E, π⟩; let eqv := cones_equiv_sieve_compatible_family P S (op E)
     rw [← eqv.left_inv π]; erw [(hom_equiv_amalgamation (eqv π).2).uniqueCongr.nonempty_congr]
@@ -161,7 +161,7 @@ theorem subsingleton_iff_isSeparatedFor :
   by
   constructor
   · intro hs E x t₁ t₂ h₁ h₂; have hx := is_compatible_of_exists_amalgamation x ⟨t₁, h₁⟩
-    rw [compatible_iff_sieve_compatible] at hx ; specialize hs hx.cone; cases hs
+    rw [compatible_iff_sieve_compatible] at hx; specialize hs hx.cone; cases hs
     have := (hom_equiv_amalgamation hx).symm.Injective
     exact Subtype.ext_iff.1 (@this ⟨t₁, h₁⟩ ⟨t₂, h₂⟩ (hs _ _))
   · rintro h ⟨E, π⟩; let eqv := cones_equiv_sieve_compatible_family P S (op E); constructor
@@ -684,8 +684,8 @@ theorem isSheaf_iff_isSheaf' : IsSheaf J P ↔ IsSheaf' J P :=
     apply coyoneda_jointly_reflects_limits
     intro X
     have q : presieve.is_sheaf_for (P ⋙ coyoneda.obj X) _ := h X.unop _ hR
-    rw [← presieve.is_sheaf_for_iff_generate] at q 
-    rw [equalizer.presieve.sheaf_condition] at q 
+    rw [← presieve.is_sheaf_for_iff_generate] at q
+    rw [equalizer.presieve.sheaf_condition] at q
     replace q := Classical.choice q
     apply (is_sheaf_for_is_sheaf_for' _ _ _ _).symm q
   · intro h U X S hS
Diff
@@ -421,8 +421,8 @@ open Preadditive
 
 variable [Preadditive A] {P Q : Sheaf J A}
 
-#print CategoryTheory.sheafHomHasZsmul /-
-instance sheafHomHasZsmul : SMul ℤ (P ⟶ Q)
+#print CategoryTheory.sheafHomHasZSMul /-
+instance sheafHomHasZSMul : SMul ℤ (P ⟶ Q)
     where smul n f :=
     Sheaf.Hom.mk
       { app := fun U => n • f.1.app U
@@ -436,15 +436,15 @@ instance sheafHomHasZsmul : SMul ℤ (P ⟶ Q)
           ·
             simpa only [sub_smul, one_zsmul, comp_sub, nat_trans.naturality, sub_comp,
               sub_left_inj] using ih }
-#align category_theory.Sheaf_hom_has_zsmul CategoryTheory.sheafHomHasZsmul
+#align category_theory.Sheaf_hom_has_zsmul CategoryTheory.sheafHomHasZSMul
 -/
 
 instance : Sub (P ⟶ Q) where sub f g := Sheaf.Hom.mk <| f.1 - g.1
 
 instance : Neg (P ⟶ Q) where neg f := Sheaf.Hom.mk <| -f.1
 
-#print CategoryTheory.sheafHomHasNsmul /-
-instance sheafHomHasNsmul : SMul ℕ (P ⟶ Q)
+#print CategoryTheory.sheafHomHasNSMul /-
+instance sheafHomHasNSMul : SMul ℕ (P ⟶ Q)
     where smul n f :=
     Sheaf.Hom.mk
       { app := fun U => n • f.1.app U
@@ -454,7 +454,7 @@ instance sheafHomHasNsmul : SMul ℕ (P ⟶ Q)
           ·
             simp only [Nat.succ_eq_add_one, add_smul, ih, one_nsmul, comp_add, nat_trans.naturality,
               add_comp] }
-#align category_theory.Sheaf_hom_has_nsmul CategoryTheory.sheafHomHasNsmul
+#align category_theory.Sheaf_hom_has_nsmul CategoryTheory.sheafHomHasNSMul
 -/
 
 instance : Zero (P ⟶ Q) where zero := Sheaf.Hom.mk 0
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2020 Kevin Buzzard, Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard, Bhavik Mehta
 -/
-import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Equalizers
-import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Products
-import Mathbin.CategoryTheory.Limits.Yoneda
-import Mathbin.CategoryTheory.Preadditive.FunctorCategory
-import Mathbin.CategoryTheory.Sites.SheafOfTypes
+import CategoryTheory.Limits.Preserves.Shapes.Equalizers
+import CategoryTheory.Limits.Preserves.Shapes.Products
+import CategoryTheory.Limits.Yoneda
+import CategoryTheory.Preadditive.FunctorCategory
+import CategoryTheory.Sites.SheafOfTypes
 
 #align_import category_theory.sites.sheaf from "leanprover-community/mathlib"@"2efd2423f8d25fa57cf7a179f5d8652ab4d0df44"
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 Kevin Buzzard, Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.sites.sheaf
-! leanprover-community/mathlib commit 2efd2423f8d25fa57cf7a179f5d8652ab4d0df44
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Equalizers
 import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Products
@@ -14,6 +9,8 @@ import Mathbin.CategoryTheory.Limits.Yoneda
 import Mathbin.CategoryTheory.Preadditive.FunctorCategory
 import Mathbin.CategoryTheory.Sites.SheafOfTypes
 
+#align_import category_theory.sites.sheaf from "leanprover-community/mathlib"@"2efd2423f8d25fa57cf7a179f5d8652ab4d0df44"
+
 /-!
 # Sheaves taking values in a category
 
Diff
@@ -80,6 +80,7 @@ open Presieve Presieve.FamilyOfElements Limits
 
 variable (P : Cᵒᵖ ⥤ A) {X : C} (S : Sieve X) (R : Presieve X) (E : Aᵒᵖ)
 
+#print CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily /-
 /-- Given a sieve `S` on `X : C`, a presheaf `P : Cᵒᵖ ⥤ A`, and an object `E` of `A`,
     the cones over the natural diagram `S.arrows.diagram.op ⋙ P` associated to `S` and `P`
     with cone point `E` are in 1-1 correspondence with sieve_compatible family of elements
@@ -105,9 +106,11 @@ def conesEquivSieveCompatibleFamily :
     rw [op_eq_iff_eq_unop]; ext; symm; apply costructured_arrow.eq_mk
   right_inv x := by ext; rfl
 #align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily
+-/
 
 variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S} (hx : x.SieveCompatible)
 
+#print CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone /-
 /-- The cone corresponding to a sieve_compatible family of elements, dot notation enabled. -/
 @[simp]
 def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone : Cone (S.arrows.diagram.op ⋙ P)
@@ -115,7 +118,9 @@ def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone : Cone (S.arro
   pt := E.unop
   π := (conesEquivSieveCompatibleFamily P S E).invFun ⟨x, hx⟩
 #align category_theory.presieve.family_of_elements.sieve_compatible.cone CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone
+-/
 
+#print CategoryTheory.Presheaf.homEquivAmalgamation /-
 /-- Cone morphisms from the cone corresponding to a sieve_compatible family to the natural
     cone associated to a sieve `S` and a presheaf `P` are in 1-1 correspondence with amalgamations
     of the family. -/
@@ -126,9 +131,11 @@ def homEquivAmalgamation : (hx.Cone ⟶ P.mapCone S.arrows.Cocone.op) ≃ { t //
   left_inv l := by ext; rfl
   right_inv t := by ext; rfl
 #align category_theory.presheaf.hom_equiv_amalgamation CategoryTheory.Presheaf.homEquivAmalgamation
+-/
 
 variable (P S)
 
+#print CategoryTheory.Presheaf.isLimit_iff_isSheafFor /-
 /-- Given sieve `S` and presheaf `P : Cᵒᵖ ⥤ A`, their natural associated cone is a limit cone
     iff `Hom (E, P -)` is a sheaf of types for the sieve `S` and all `E : A`. -/
 theorem isLimit_iff_isSheafFor :
@@ -145,7 +152,9 @@ theorem isLimit_iff_isSheafFor :
     rw [← eqv.left_inv π]; erw [(hom_equiv_amalgamation (eqv π).2).uniqueCongr.nonempty_congr]
     rw [unique_subtype_iff_exists_unique]; exact h _ _ (eqv π).2
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for CategoryTheory.Presheaf.isLimit_iff_isSheafFor
+-/
 
+#print CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor /-
 /-- Given sieve `S` and presheaf `P : Cᵒᵖ ⥤ A`, their natural associated cone admits at most one
     morphism from every cone in the same category (i.e. over the same diagram),
     iff `Hom (E, P -)`is separated for the sieve `S` and all `E : A`. -/
@@ -162,7 +171,9 @@ theorem subsingleton_iff_isSeparatedFor :
     rw [← eqv.left_inv π]; intro f₁ f₂; let eqv' := hom_equiv_amalgamation (eqv π).2
     apply eqv'.injective; ext; apply h _ (eqv π).1 <;> exact (eqv' _).2
 #align category_theory.presheaf.subsingleton_iff_is_separated_for CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor
+-/
 
+#print CategoryTheory.Presheaf.isSheaf_iff_isLimit /-
 /-- A presheaf `P` is a sheaf for the Grothendieck topology `J` iff for every covering sieve
     `S` of `J`, the natural cone associated to `P` and `S` is a limit cone. -/
 theorem isSheaf_iff_isLimit :
@@ -171,7 +182,9 @@ theorem isSheaf_iff_isLimit :
   ⟨fun h X S hS => (isLimit_iff_isSheafFor P S).2 fun E => h E.unop S hS, fun h E X S hS =>
     (isLimit_iff_isSheafFor P S).1 (h S hS) (op E)⟩
 #align category_theory.presheaf.is_sheaf_iff_is_limit CategoryTheory.Presheaf.isSheaf_iff_isLimit
+-/
 
+#print CategoryTheory.Presheaf.isSeparated_iff_subsingleton /-
 /-- A presheaf `P` is separated for the Grothendieck topology `J` iff for every covering sieve
     `S` of `J`, the natural cone associated to `P` and `S` admits at most one morphism from every
     cone in the same category. -/
@@ -181,7 +194,9 @@ theorem isSeparated_iff_subsingleton :
   ⟨fun h X S hS => (subsingleton_iff_isSeparatedFor P S).2 fun E => h E.unop S hS, fun h E X S hS =>
     (subsingleton_iff_isSeparatedFor P S).1 (h S hS) (op E)⟩
 #align category_theory.presheaf.is_separated_iff_subsingleton CategoryTheory.Presheaf.isSeparated_iff_subsingleton
+-/
 
+#print CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve /-
 /-- Given presieve `R` and presheaf `P : Cᵒᵖ ⥤ A`, the natural cone associated to `P` and
     the sieve `sieve.generate R` generated by `R` is a limit cone iff `Hom (E, P -)` is a
     sheaf of types for the presieve `R` and all `E : A`. -/
@@ -190,7 +205,9 @@ theorem isLimit_iff_isSheafFor_presieve :
       ∀ E : Aᵒᵖ, IsSheafFor (P ⋙ coyoneda.obj E) R :=
   (isLimit_iff_isSheafFor P _).trans (forall_congr' fun _ => (isSheafFor_iff_generate _).symm)
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve
+-/
 
+#print CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopology /-
 /-- A presheaf `P` is a sheaf for the Grothendieck topology generated by a pretopology `K`
     iff for every covering presieve `R` of `K`, the natural cone associated to `P` and
     `sieve.generate R` is a limit cone. -/
@@ -203,11 +220,13 @@ theorem isSheaf_iff_isLimit_pretopology [HasPullbacks C] (K : Pretopology C) :
     ⟨fun h X R hR => (is_limit_iff_is_sheaf_for_presieve P R).2 fun E => h E.unop R hR,
       fun h E X R hR => (is_limit_iff_is_sheaf_for_presieve P R).1 (h R hR) (op E)⟩
 #align category_theory.presheaf.is_sheaf_iff_is_limit_pretopology CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopology
+-/
 
 end LimitSheafCondition
 
 variable {J}
 
+#print CategoryTheory.Presheaf.IsSheaf.amalgamate /-
 /-- This is a wrapper around `presieve.is_sheaf_for.amalgamate` to be used below.
   If `P`s a sheaf, `S` is a cover of `X`, and `x` is a collection of morphisms from `E`
   to `P` evaluated at terms in the cover which are compatible, then we can amalgamate
@@ -218,7 +237,9 @@ def IsSheaf.amalgamate {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X :
   (hP _ _ S.condition).amalgamate (fun Y f hf => x ⟨Y, f, hf⟩) fun Y₁ Y₂ Z g₁ g₂ f₁ f₂ h₁ h₂ w =>
     hx ⟨Y₁, Y₂, Z, g₁, g₂, f₁, f₂, h₁, h₂, w⟩
 #align category_theory.presheaf.is_sheaf.amalgamate CategoryTheory.Presheaf.IsSheaf.amalgamate
+-/
 
+#print CategoryTheory.Presheaf.IsSheaf.amalgamate_map /-
 @[simp, reassoc]
 theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.cover X) (x : ∀ I : S.arrow, E ⟶ P.obj (op I.y))
@@ -230,12 +251,15 @@ theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E :
     @presieve.is_sheaf_for.valid_glue _ _ _ _ _ _ (hP _ _ S.condition) (fun Y f hf => x ⟨Y, f, hf⟩)
       (fun Y₁ Y₂ Z g₁ g₂ f₁ f₂ h₁ h₂ w => hx ⟨Y₁, Y₂, Z, g₁, g₂, f₁, f₂, h₁, h₂, w⟩) f hf
 #align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_map
+-/
 
+#print CategoryTheory.Presheaf.IsSheaf.hom_ext /-
 theorem IsSheaf.hom_ext {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.cover X) (e₁ e₂ : E ⟶ P.obj (op X))
     (h : ∀ I : S.arrow, e₁ ≫ P.map I.f.op = e₂ ≫ P.map I.f.op) : e₁ = e₂ :=
   (hP _ _ S.condition).IsSeparatedFor.ext fun Y f hf => h ⟨Y, f, hf⟩
 #align category_theory.presheaf.is_sheaf.hom_ext CategoryTheory.Presheaf.IsSheaf.hom_ext
+-/
 
 #print CategoryTheory.Presheaf.isSheaf_of_iso_iff /-
 theorem isSheaf_of_iso_iff {P P' : Cᵒᵖ ⥤ A} (e : P ≅ P') : IsSheaf J P ↔ IsSheaf J P' :=
@@ -247,10 +271,12 @@ theorem isSheaf_of_iso_iff {P P' : Cᵒᵖ ⥤ A} (e : P ≅ P') : IsSheaf J P 
 
 variable (J)
 
+#print CategoryTheory.Presheaf.isSheaf_of_isTerminal /-
 theorem isSheaf_of_isTerminal {X : A} (hX : IsTerminal X) :
     Presheaf.IsSheaf J ((CategoryTheory.Functor.const _).obj X) := fun _ _ _ _ _ _ =>
   ⟨hX.from _, fun _ _ _ => hX.hom_ext _ _, fun _ _ => hX.hom_ext _ _⟩
 #align category_theory.presheaf.is_sheaf_of_is_terminal CategoryTheory.Presheaf.isSheaf_of_isTerminal
+-/
 
 end Presheaf
 
@@ -358,6 +384,7 @@ theorem isSheaf_iff_isSheaf_of_type (P : Cᵒᵖ ⥤ Type w) :
 #align category_theory.is_sheaf_iff_is_sheaf_of_type CategoryTheory.isSheaf_iff_isSheaf_of_type
 -/
 
+#print CategoryTheory.sheafEquivSheafOfTypes /-
 /-- The category of sheaves taking values in Type is the same as the category of set-valued sheaves.
 -/
 @[simps]
@@ -372,12 +399,14 @@ def sheafEquivSheafOfTypes : Sheaf J (Type w) ≌ SheafOfTypes J
   unitIso := NatIso.ofComponents (fun X => ⟨⟨𝟙 _⟩, ⟨𝟙 _⟩, by tidy, by tidy⟩) (by tidy)
   counitIso := NatIso.ofComponents (fun X => ⟨⟨𝟙 _⟩, ⟨𝟙 _⟩, by tidy, by tidy⟩) (by tidy)
 #align category_theory.Sheaf_equiv_SheafOfTypes CategoryTheory.sheafEquivSheafOfTypes
+-/
 
 instance : Inhabited (Sheaf (⊥ : GrothendieckTopology C) (Type w)) :=
   ⟨(sheafEquivSheafOfTypes _).inverse.obj default⟩
 
 variable {J} {A}
 
+#print CategoryTheory.Sheaf.isTerminalOfBotCover /-
 /-- If the empty sieve is a cover of `X`, then `F(X)` is terminal. -/
 def Sheaf.isTerminalOfBotCover (F : Sheaf J A) (X : C) (H : ⊥ ∈ J X) :
     IsTerminal (F.1.obj (op X)) :=
@@ -387,6 +416,7 @@ def Sheaf.isTerminalOfBotCover (F : Sheaf J A) (X : C) (H : ⊥ ∈ J X) :
   choose t h using F.2 Y _ H (by tidy) (by tidy)
   exact ⟨⟨t⟩, fun a => h.2 a (by tidy)⟩
 #align category_theory.Sheaf.is_terminal_of_bot_cover CategoryTheory.Sheaf.isTerminalOfBotCover
+-/
 
 section Preadditive
 
@@ -434,10 +464,12 @@ instance : Zero (P ⟶ Q) where zero := Sheaf.Hom.mk 0
 
 instance : Add (P ⟶ Q) where add f g := Sheaf.Hom.mk <| f.1 + g.1
 
+#print CategoryTheory.Sheaf.Hom.add_app /-
 @[simp]
 theorem Sheaf.Hom.add_app (f g : P ⟶ Q) (U) : (f + g).1.app U = f.1.app U + g.1.app U :=
   rfl
 #align category_theory.Sheaf.hom.add_app CategoryTheory.Sheaf.Hom.add_app
+-/
 
 instance : AddCommGroup (P ⟶ Q) :=
   Function.Injective.addCommGroup (fun f : Sheaf.Hom P Q => f.1) (fun _ _ h => Sheaf.Hom.ext _ _ h)
@@ -521,6 +553,7 @@ theorem isSheaf_iff_multifork :
 #align category_theory.presheaf.is_sheaf_iff_multifork CategoryTheory.Presheaf.isSheaf_iff_multifork
 -/
 
+#print CategoryTheory.Presheaf.isSheaf_iff_multiequalizer /-
 theorem isSheaf_iff_multiequalizer [∀ (X : C) (S : J.cover X), HasMultiequalizer (S.index P)] :
     IsSheaf J P ↔ ∀ (X : C) (S : J.cover X), IsIso (S.toMultiequalizer P) :=
   by
@@ -539,6 +572,7 @@ theorem isSheaf_iff_multiequalizer [∀ (X : C) (S : J.cover X), HasMultiequaliz
       change _ = limit.lift _ _ ≫ _
       simp
 #align category_theory.presheaf.is_sheaf_iff_multiequalizer CategoryTheory.Presheaf.isSheaf_iff_multiequalizer
+-/
 
 end MultiequalizerConditions
 
@@ -556,6 +590,7 @@ def firstObj : A :=
 #align category_theory.presheaf.first_obj CategoryTheory.Presheaf.firstObj
 -/
 
+#print CategoryTheory.Presheaf.forkMap /-
 /--
 The left morphism of the fork diagram given in Equation (3) of [MM92], as well as the fork diagram
 of <https://stacks.math.columbia.edu/tag/00VM>.
@@ -563,6 +598,7 @@ of <https://stacks.math.columbia.edu/tag/00VM>.
 def forkMap : P.obj (op U) ⟶ firstObj R P :=
   Pi.lift fun f => P.map f.2.1.op
 #align category_theory.presheaf.fork_map CategoryTheory.Presheaf.forkMap
+-/
 
 variable [HasPullbacks C]
 
@@ -590,6 +626,7 @@ def secondMap : firstObj R P ⟶ secondObj R P :=
 #align category_theory.presheaf.second_map CategoryTheory.Presheaf.secondMap
 -/
 
+#print CategoryTheory.Presheaf.w /-
 theorem w : forkMap R P ≫ firstMap R P = forkMap R P ≫ secondMap R P :=
   by
   apply limit.hom_ext
@@ -599,6 +636,7 @@ theorem w : forkMap R P ≫ firstMap R P = forkMap R P ≫ secondMap R P :=
   rw [← P.map_comp, ← op_comp, pullback.condition]
   simp
 #align category_theory.presheaf.w CategoryTheory.Presheaf.w
+-/
 
 #print CategoryTheory.Presheaf.IsSheaf' /-
 /-- An alternative definition of the sheaf condition in terms of equalizers. This is shown to be
Diff
@@ -92,14 +92,14 @@ def conesEquivSieveCompatibleFamily :
   toFun π :=
     ⟨fun Y f h => π.app (op ⟨Over.mk f, h⟩), fun _ =>
       by
-      intros ; apply (id_comp _).symm.trans; dsimp
+      intros; apply (id_comp _).symm.trans; dsimp
       convert π.naturality (Quiver.Hom.op (over.hom_mk _ _)) <;> dsimp <;> rfl⟩
   invFun x :=
     { app := fun f => x.1 f.unop.1.Hom f.unop.2
       naturality' := fun f f' g =>
         by
         refine' Eq.trans _ (x.2 f.unop.1.Hom g.unop.left f.unop.2)
-        erw [id_comp]; congr ; rw [over.w g.unop] }
+        erw [id_comp]; congr; rw [over.w g.unop] }
   left_inv π := by
     ext; dsimp; congr
     rw [op_eq_iff_eq_unop]; ext; symm; apply costructured_arrow.eq_mk
@@ -139,7 +139,7 @@ theorem isLimit_iff_isSheafFor :
   rw [((cone.is_limit_equiv_is_terminal _).trans (is_terminal_equiv_unique _ _)).nonempty_congr]
   rw [Classical.nonempty_pi]; constructor
   · intro hu E x hx; specialize hu hx.cone
-    erw [(hom_equiv_amalgamation hx).uniqueCongr.nonempty_congr] at hu
+    erw [(hom_equiv_amalgamation hx).uniqueCongr.nonempty_congr] at hu 
     exact (unique_subtype_iff_exists_unique _).1 hu
   · rintro h ⟨E, π⟩; let eqv := cones_equiv_sieve_compatible_family P S (op E)
     rw [← eqv.left_inv π]; erw [(hom_equiv_amalgamation (eqv π).2).uniqueCongr.nonempty_congr]
@@ -155,7 +155,7 @@ theorem subsingleton_iff_isSeparatedFor :
   by
   constructor
   · intro hs E x t₁ t₂ h₁ h₂; have hx := is_compatible_of_exists_amalgamation x ⟨t₁, h₁⟩
-    rw [compatible_iff_sieve_compatible] at hx; specialize hs hx.cone; cases hs
+    rw [compatible_iff_sieve_compatible] at hx ; specialize hs hx.cone; cases hs
     have := (hom_equiv_amalgamation hx).symm.Injective
     exact Subtype.ext_iff.1 (@this ⟨t₁, h₁⟩ ⟨t₂, h₂⟩ (hs _ _))
   · rintro h ⟨E, π⟩; let eqv := cones_equiv_sieve_compatible_family P S (op E); constructor
@@ -441,7 +441,7 @@ theorem Sheaf.Hom.add_app (f g : P ⟶ Q) (U) : (f + g).1.app U = f.1.app U + g.
 
 instance : AddCommGroup (P ⟶ Q) :=
   Function.Injective.addCommGroup (fun f : Sheaf.Hom P Q => f.1) (fun _ _ h => Sheaf.Hom.ext _ _ h)
-    rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => by ext; simpa [*] ) fun _ _ =>
+    rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => by ext; simpa [*]) fun _ _ =>
     by ext; simpa [*]
 
 instance : Preadditive (Sheaf J A)
@@ -552,7 +552,7 @@ The middle object of the fork diagram given in Equation (3) of [MM92], as well a
 of <https://stacks.math.columbia.edu/tag/00VM>.
 -/
 def firstObj : A :=
-  ∏ fun f : ΣV, { f : V ⟶ U // R f } => P.obj (op f.1)
+  ∏ fun f : Σ V, { f : V ⟶ U // R f } => P.obj (op f.1)
 #align category_theory.presheaf.first_obj CategoryTheory.Presheaf.firstObj
 -/
 
@@ -571,7 +571,7 @@ variable [HasPullbacks C]
 contains the data used to check a family of elements for a presieve is compatible.
 -/
 def secondObj : A :=
-  ∏ fun fg : (ΣV, { f : V ⟶ U // R f }) × ΣW, { g : W ⟶ U // R g } =>
+  ∏ fun fg : (Σ V, { f : V ⟶ U // R f }) × Σ W, { g : W ⟶ U // R g } =>
     P.obj (op (pullback fg.1.2.1 fg.2.2.1))
 #align category_theory.presheaf.second_obj CategoryTheory.Presheaf.secondObj
 -/
@@ -649,8 +649,8 @@ theorem isSheaf_iff_isSheaf' : IsSheaf J P ↔ IsSheaf' J P :=
     apply coyoneda_jointly_reflects_limits
     intro X
     have q : presieve.is_sheaf_for (P ⋙ coyoneda.obj X) _ := h X.unop _ hR
-    rw [← presieve.is_sheaf_for_iff_generate] at q
-    rw [equalizer.presieve.sheaf_condition] at q
+    rw [← presieve.is_sheaf_for_iff_generate] at q 
+    rw [equalizer.presieve.sheaf_condition] at q 
     replace q := Classical.choice q
     apply (is_sheaf_for_is_sheaf_for' _ _ _ _).symm q
   · intro h U X S hS
Diff
@@ -80,9 +80,6 @@ open Presieve Presieve.FamilyOfElements Limits
 
 variable (P : Cᵒᵖ ⥤ A) {X : C} (S : Sieve X) (R : Presieve X) (E : Aᵒᵖ)
 
-/- warning: category_theory.presheaf.cones_equiv_sieve_compatible_family -> CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamilyₓ'. -/
 /-- Given a sieve `S` on `X : C`, a presheaf `P : Cᵒᵖ ⥤ A`, and an object `E` of `A`,
     the cones over the natural diagram `S.arrows.diagram.op ⋙ P` associated to `S` and `P`
     with cone point `E` are in 1-1 correspondence with sieve_compatible family of elements
@@ -111,9 +108,6 @@ def conesEquivSieveCompatibleFamily :
 
 variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S} (hx : x.SieveCompatible)
 
-/- warning: category_theory.presieve.family_of_elements.sieve_compatible.cone -> CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presieve.family_of_elements.sieve_compatible.cone CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.coneₓ'. -/
 /-- The cone corresponding to a sieve_compatible family of elements, dot notation enabled. -/
 @[simp]
 def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone : Cone (S.arrows.diagram.op ⋙ P)
@@ -122,9 +116,6 @@ def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone : Cone (S.arro
   π := (conesEquivSieveCompatibleFamily P S E).invFun ⟨x, hx⟩
 #align category_theory.presieve.family_of_elements.sieve_compatible.cone CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone
 
-/- warning: category_theory.presheaf.hom_equiv_amalgamation -> CategoryTheory.Presheaf.homEquivAmalgamation is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.hom_equiv_amalgamation CategoryTheory.Presheaf.homEquivAmalgamationₓ'. -/
 /-- Cone morphisms from the cone corresponding to a sieve_compatible family to the natural
     cone associated to a sieve `S` and a presheaf `P` are in 1-1 correspondence with amalgamations
     of the family. -/
@@ -138,9 +129,6 @@ def homEquivAmalgamation : (hx.Cone ⟶ P.mapCone S.arrows.Cocone.op) ≃ { t //
 
 variable (P S)
 
-/- warning: category_theory.presheaf.is_limit_iff_is_sheaf_for -> CategoryTheory.Presheaf.isLimit_iff_isSheafFor is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_limit_iff_is_sheaf_for CategoryTheory.Presheaf.isLimit_iff_isSheafForₓ'. -/
 /-- Given sieve `S` and presheaf `P : Cᵒᵖ ⥤ A`, their natural associated cone is a limit cone
     iff `Hom (E, P -)` is a sheaf of types for the sieve `S` and all `E : A`. -/
 theorem isLimit_iff_isSheafFor :
@@ -158,9 +146,6 @@ theorem isLimit_iff_isSheafFor :
     rw [unique_subtype_iff_exists_unique]; exact h _ _ (eqv π).2
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for CategoryTheory.Presheaf.isLimit_iff_isSheafFor
 
-/- warning: category_theory.presheaf.subsingleton_iff_is_separated_for -> CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.subsingleton_iff_is_separated_for CategoryTheory.Presheaf.subsingleton_iff_isSeparatedForₓ'. -/
 /-- Given sieve `S` and presheaf `P : Cᵒᵖ ⥤ A`, their natural associated cone admits at most one
     morphism from every cone in the same category (i.e. over the same diagram),
     iff `Hom (E, P -)`is separated for the sieve `S` and all `E : A`. -/
@@ -178,9 +163,6 @@ theorem subsingleton_iff_isSeparatedFor :
     apply eqv'.injective; ext; apply h _ (eqv π).1 <;> exact (eqv' _).2
 #align category_theory.presheaf.subsingleton_iff_is_separated_for CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor
 
-/- warning: category_theory.presheaf.is_sheaf_iff_is_limit -> CategoryTheory.Presheaf.isSheaf_iff_isLimit is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_iff_is_limit CategoryTheory.Presheaf.isSheaf_iff_isLimitₓ'. -/
 /-- A presheaf `P` is a sheaf for the Grothendieck topology `J` iff for every covering sieve
     `S` of `J`, the natural cone associated to `P` and `S` is a limit cone. -/
 theorem isSheaf_iff_isLimit :
@@ -190,9 +172,6 @@ theorem isSheaf_iff_isLimit :
     (isLimit_iff_isSheafFor P S).1 (h S hS) (op E)⟩
 #align category_theory.presheaf.is_sheaf_iff_is_limit CategoryTheory.Presheaf.isSheaf_iff_isLimit
 
-/- warning: category_theory.presheaf.is_separated_iff_subsingleton -> CategoryTheory.Presheaf.isSeparated_iff_subsingleton is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_separated_iff_subsingleton CategoryTheory.Presheaf.isSeparated_iff_subsingletonₓ'. -/
 /-- A presheaf `P` is separated for the Grothendieck topology `J` iff for every covering sieve
     `S` of `J`, the natural cone associated to `P` and `S` admits at most one morphism from every
     cone in the same category. -/
@@ -203,9 +182,6 @@ theorem isSeparated_iff_subsingleton :
     (subsingleton_iff_isSeparatedFor P S).1 (h S hS) (op E)⟩
 #align category_theory.presheaf.is_separated_iff_subsingleton CategoryTheory.Presheaf.isSeparated_iff_subsingleton
 
-/- warning: category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve -> CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieveₓ'. -/
 /-- Given presieve `R` and presheaf `P : Cᵒᵖ ⥤ A`, the natural cone associated to `P` and
     the sieve `sieve.generate R` generated by `R` is a limit cone iff `Hom (E, P -)` is a
     sheaf of types for the presieve `R` and all `E : A`. -/
@@ -215,9 +191,6 @@ theorem isLimit_iff_isSheafFor_presieve :
   (isLimit_iff_isSheafFor P _).trans (forall_congr' fun _ => (isSheafFor_iff_generate _).symm)
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve
 
-/- warning: category_theory.presheaf.is_sheaf_iff_is_limit_pretopology -> CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopology is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_iff_is_limit_pretopology CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopologyₓ'. -/
 /-- A presheaf `P` is a sheaf for the Grothendieck topology generated by a pretopology `K`
     iff for every covering presieve `R` of `K`, the natural cone associated to `P` and
     `sieve.generate R` is a limit cone. -/
@@ -235,9 +208,6 @@ end LimitSheafCondition
 
 variable {J}
 
-/- warning: category_theory.presheaf.is_sheaf.amalgamate -> CategoryTheory.Presheaf.IsSheaf.amalgamate is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.amalgamate CategoryTheory.Presheaf.IsSheaf.amalgamateₓ'. -/
 /-- This is a wrapper around `presieve.is_sheaf_for.amalgamate` to be used below.
   If `P`s a sheaf, `S` is a cover of `X`, and `x` is a collection of morphisms from `E`
   to `P` evaluated at terms in the cover which are compatible, then we can amalgamate
@@ -249,9 +219,6 @@ def IsSheaf.amalgamate {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X :
     hx ⟨Y₁, Y₂, Z, g₁, g₂, f₁, f₂, h₁, h₂, w⟩
 #align category_theory.presheaf.is_sheaf.amalgamate CategoryTheory.Presheaf.IsSheaf.amalgamate
 
-/- warning: category_theory.presheaf.is_sheaf.amalgamate_map -> CategoryTheory.Presheaf.IsSheaf.amalgamate_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_mapₓ'. -/
 @[simp, reassoc]
 theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.cover X) (x : ∀ I : S.arrow, E ⟶ P.obj (op I.y))
@@ -264,9 +231,6 @@ theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E :
       (fun Y₁ Y₂ Z g₁ g₂ f₁ f₂ h₁ h₂ w => hx ⟨Y₁, Y₂, Z, g₁, g₂, f₁, f₂, h₁, h₂, w⟩) f hf
 #align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_map
 
-/- warning: category_theory.presheaf.is_sheaf.hom_ext -> CategoryTheory.Presheaf.IsSheaf.hom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.hom_ext CategoryTheory.Presheaf.IsSheaf.hom_extₓ'. -/
 theorem IsSheaf.hom_ext {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.cover X) (e₁ e₂ : E ⟶ P.obj (op X))
     (h : ∀ I : S.arrow, e₁ ≫ P.map I.f.op = e₂ ≫ P.map I.f.op) : e₁ = e₂ :=
@@ -283,12 +247,6 @@ theorem isSheaf_of_iso_iff {P P' : Cᵒᵖ ⥤ A} (e : P ≅ P') : IsSheaf J P 
 
 variable (J)
 
-/- warning: category_theory.presheaf.is_sheaf_of_is_terminal -> CategoryTheory.Presheaf.isSheaf_of_isTerminal is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) {X : A}, (CategoryTheory.Limits.IsTerminal.{u2, u4} A _inst_2 X) -> (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 J (CategoryTheory.Functor.obj.{u2, max u3 u2, u4, max u1 u2 u3 u4} A _inst_2 (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.const.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) X))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) {X : A}, (CategoryTheory.Limits.IsTerminal.{u2, u4} A _inst_2 X) -> (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 J (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u4, max (max (max u3 u1) u2) u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u1) u4) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u1) u4) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u4, max (max (max u3 u1) u4) u2} A _inst_2 (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.const.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_of_is_terminal CategoryTheory.Presheaf.isSheaf_of_isTerminalₓ'. -/
 theorem isSheaf_of_isTerminal {X : A} (hX : IsTerminal X) :
     Presheaf.IsSheaf J ((CategoryTheory.Functor.const _).obj X) := fun _ _ _ _ _ _ =>
   ⟨hX.from _, fun _ _ _ => hX.hom_ext _ _, fun _ _ => hX.hom_ext _ _⟩
@@ -400,12 +358,6 @@ theorem isSheaf_iff_isSheaf_of_type (P : Cᵒᵖ ⥤ Type w) :
 #align category_theory.is_sheaf_iff_is_sheaf_of_type CategoryTheory.isSheaf_iff_isSheaf_of_type
 -/
 
-/- warning: category_theory.Sheaf_equiv_SheafOfTypes -> CategoryTheory.sheafEquivSheafOfTypes 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), CategoryTheory.Equivalence.{max u3 u1, max u1 u3, max u3 (succ u1) u2 u1, max u3 u2 (succ u1)} (CategoryTheory.Sheaf.{u2, u1, u3, succ u1} C _inst_1 J Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, u1, u3, succ u1} C _inst_1 J Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.SheafOfTypes.{u1, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, u1} C _inst_1 J)
-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), CategoryTheory.Equivalence.{max u3 u1, max u3 u1, max (max (max (succ u1) u3) u1) u2, max (max u3 u2) (succ u1)} (CategoryTheory.Sheaf.{u2, u1, u3, succ u1} C _inst_1 J Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.SheafOfTypes.{u1, u2, u3} C _inst_1 J) (CategoryTheory.Sheaf.instCategorySheaf.{u2, u1, u3, succ u1} C _inst_1 J Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, u1} C _inst_1 J)
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf_equiv_SheafOfTypes CategoryTheory.sheafEquivSheafOfTypesₓ'. -/
 /-- The category of sheaves taking values in Type is the same as the category of set-valued sheaves.
 -/
 @[simps]
@@ -426,12 +378,6 @@ instance : Inhabited (Sheaf (⊥ : GrothendieckTopology C) (Type w)) :=
 
 variable {J} {A}
 
-/- warning: category_theory.Sheaf.is_terminal_of_bot_cover -> CategoryTheory.Sheaf.isTerminalOfBotCover is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1} {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (F : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (X : C), (Membership.Mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.hasMem.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Bot.bot.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (CompleteLattice.toHasBot.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.completeLattice.{u1, u3} C _inst_1 X))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ (max u3 u1))} (CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (fun (_x : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) => forall (X : C), Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u1, u3} C _inst_1) J X)) -> (CategoryTheory.Limits.IsTerminal.{u2, u4} A _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 F) (Opposite.op.{succ u3} C X)))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1} {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (F : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (X : C), (Membership.mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.instMembershipSet.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Bot.bot.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (CompleteLattice.toBot.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.instCompleteLatticeSieve.{u1, u3} C _inst_1 X))) (CategoryTheory.GrothendieckTopology.sieves.{u1, u3} C _inst_1 J X)) -> (CategoryTheory.Limits.IsTerminal.{u2, u4} A _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 F)) (Opposite.op.{succ u3} C X)))
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.is_terminal_of_bot_cover CategoryTheory.Sheaf.isTerminalOfBotCoverₓ'. -/
 /-- If the empty sieve is a cover of `X`, then `F(X)` is terminal. -/
 def Sheaf.isTerminalOfBotCover (F : Sheaf J A) (X : C) (H : ⊥ ∈ J X) :
     IsTerminal (F.1.obj (op X)) :=
@@ -488,9 +434,6 @@ instance : Zero (P ⟶ Q) where zero := Sheaf.Hom.mk 0
 
 instance : Add (P ⟶ Q) where add f g := Sheaf.Hom.mk <| f.1 + g.1
 
-/- warning: category_theory.Sheaf.hom.add_app -> CategoryTheory.Sheaf.Hom.add_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.hom.add_app CategoryTheory.Sheaf.Hom.add_appₓ'. -/
 @[simp]
 theorem Sheaf.Hom.add_app (f g : P ⟶ Q) (U) : (f + g).1.app U = f.1.app U + g.1.app U :=
   rfl
@@ -578,12 +521,6 @@ theorem isSheaf_iff_multifork :
 #align category_theory.presheaf.is_sheaf_iff_multifork CategoryTheory.Presheaf.isSheaf_iff_multifork
 -/
 
-/- warning: category_theory.presheaf.is_sheaf_iff_multiequalizer -> CategoryTheory.Presheaf.isSheaf_iff_multiequalizer is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] (J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1) (P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u1 u2, u3, max u2 u1} A _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u3, u1, u2} C _inst_1 X J A _inst_2 S P)], Iff (CategoryTheory.Presheaf.IsSheaf.{u1, max u1 u2, u2, u3} C _inst_1 A _inst_2 J P) (forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X), CategoryTheory.IsIso.{max u1 u2, u3} A _inst_2 (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C X)) (CategoryTheory.Limits.multiequalizer.{max u1 u2, u3, max u2 u1} A _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u3, u1, u2} C _inst_1 X J A _inst_2 S P) (_inst_3 X S)) (CategoryTheory.GrothendieckTopology.Cover.toMultiequalizer.{u3, u1, u2} C _inst_1 X J A _inst_2 S P (_inst_3 X S)))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] (J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1) (P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u1, u3, max u2 u1} A _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u3, u1, u2} C _inst_1 X J A _inst_2 S P)], Iff (CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_2 J P) (forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X), CategoryTheory.IsIso.{max u2 u1, u3} A _inst_2 (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C X)) (CategoryTheory.Limits.multiequalizer.{max u2 u1, u3, max u2 u1} A _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u3, u1, u2} C _inst_1 X J A _inst_2 S P) (_inst_3 X S)) (CategoryTheory.GrothendieckTopology.Cover.toMultiequalizer.{u3, u1, u2} C _inst_1 X J A _inst_2 S P (_inst_3 X S)))
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_iff_multiequalizer CategoryTheory.Presheaf.isSheaf_iff_multiequalizerₓ'. -/
 theorem isSheaf_iff_multiequalizer [∀ (X : C) (S : J.cover X), HasMultiequalizer (S.index P)] :
     IsSheaf J P ↔ ∀ (X : C) (S : J.cover X), IsIso (S.toMultiequalizer P) :=
   by
@@ -619,12 +556,6 @@ def firstObj : A :=
 #align category_theory.presheaf.first_obj CategoryTheory.Presheaf.firstObj
 -/
 
-/- warning: category_theory.presheaf.fork_map -> CategoryTheory.Presheaf.forkMap is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] {U : C} (R : CategoryTheory.Presieve.{u1, u2} C _inst_1 U) (P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasProducts.{max u2 u1, max u1 u2, u3} A _inst_2], Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_2)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.forkMap._proof_1.{u2, u3, u1} A _inst_2 _inst_3))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] {U : C} (R : CategoryTheory.Presieve.{u1, u2} C _inst_1 U) (P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasProducts.{max u2 u1, max u2 u1, u3} A _inst_2], Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J))
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.fork_map CategoryTheory.Presheaf.forkMapₓ'. -/
 /--
 The left morphism of the fork diagram given in Equation (3) of [MM92], as well as the fork diagram
 of <https://stacks.math.columbia.edu/tag/00VM>.
@@ -659,12 +590,6 @@ def secondMap : firstObj R P ⟶ secondObj R P :=
 #align category_theory.presheaf.second_map CategoryTheory.Presheaf.secondMap
 -/
 
-/- warning: category_theory.presheaf.w -> CategoryTheory.Presheaf.w is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] {U : C} (R : CategoryTheory.Presieve.{u1, u2} C _inst_1 U) (P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasProducts.{max u2 u1, max u1 u2, u3} A _inst_2] [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_2)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.firstMap._proof_2.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J)) _inst_4)) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_2) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.forkMap._proof_1.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J))) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.firstMap._proof_2.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J)) _inst_4) (CategoryTheory.Presheaf.forkMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.firstMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4)) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_2) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.forkMap._proof_1.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J))) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.firstMap._proof_2.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J)) _inst_4) (CategoryTheory.Presheaf.forkMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.secondMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] {U : C} (R : CategoryTheory.Presieve.{u1, u2} C _inst_1 U) (P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasProducts.{max u2 u1, max u2 u1, u3} A _inst_2] [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4)) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4) (CategoryTheory.Presheaf.forkMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.firstMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4)) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4) (CategoryTheory.Presheaf.forkMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.secondMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4))
-Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.w CategoryTheory.Presheaf.wₓ'. -/
 theorem w : forkMap R P ≫ firstMap R P = forkMap R P ≫ secondMap R P :=
   by
   apply limit.hom_ext
Diff
@@ -95,29 +95,18 @@ def conesEquivSieveCompatibleFamily :
   toFun π :=
     ⟨fun Y f h => π.app (op ⟨Over.mk f, h⟩), fun _ =>
       by
-      intros
-      apply (id_comp _).symm.trans
-      dsimp
+      intros ; apply (id_comp _).symm.trans; dsimp
       convert π.naturality (Quiver.Hom.op (over.hom_mk _ _)) <;> dsimp <;> rfl⟩
   invFun x :=
     { app := fun f => x.1 f.unop.1.Hom f.unop.2
       naturality' := fun f f' g =>
         by
         refine' Eq.trans _ (x.2 f.unop.1.Hom g.unop.left f.unop.2)
-        erw [id_comp]
-        congr
-        rw [over.w g.unop] }
+        erw [id_comp]; congr ; rw [over.w g.unop] }
   left_inv π := by
-    ext
-    dsimp
-    congr
-    rw [op_eq_iff_eq_unop]
-    ext
-    symm
-    apply costructured_arrow.eq_mk
-  right_inv x := by
-    ext
-    rfl
+    ext; dsimp; congr
+    rw [op_eq_iff_eq_unop]; ext; symm; apply costructured_arrow.eq_mk
+  right_inv x := by ext; rfl
 #align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily
 
 variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S} (hx : x.SieveCompatible)
@@ -143,12 +132,8 @@ def homEquivAmalgamation : (hx.Cone ⟶ P.mapCone S.arrows.Cocone.op) ≃ { t //
     where
   toFun l := ⟨l.Hom, fun Y f hf => l.w (op ⟨Over.mk f, hf⟩)⟩
   invFun t := ⟨t.1, fun f => t.2 f.unop.1.Hom f.unop.2⟩
-  left_inv l := by
-    ext
-    rfl
-  right_inv t := by
-    ext
-    rfl
+  left_inv l := by ext; rfl
+  right_inv t := by ext; rfl
 #align category_theory.presheaf.hom_equiv_amalgamation CategoryTheory.Presheaf.homEquivAmalgamation
 
 variable (P S)
@@ -165,16 +150,12 @@ theorem isLimit_iff_isSheafFor :
   dsimp [is_sheaf_for]; simp_rw [compatible_iff_sieve_compatible]
   rw [((cone.is_limit_equiv_is_terminal _).trans (is_terminal_equiv_unique _ _)).nonempty_congr]
   rw [Classical.nonempty_pi]; constructor
-  · intro hu E x hx
-    specialize hu hx.cone
+  · intro hu E x hx; specialize hu hx.cone
     erw [(hom_equiv_amalgamation hx).uniqueCongr.nonempty_congr] at hu
     exact (unique_subtype_iff_exists_unique _).1 hu
-  · rintro h ⟨E, π⟩
-    let eqv := cones_equiv_sieve_compatible_family P S (op E)
-    rw [← eqv.left_inv π]
-    erw [(hom_equiv_amalgamation (eqv π).2).uniqueCongr.nonempty_congr]
-    rw [unique_subtype_iff_exists_unique]
-    exact h _ _ (eqv π).2
+  · rintro h ⟨E, π⟩; let eqv := cones_equiv_sieve_compatible_family P S (op E)
+    rw [← eqv.left_inv π]; erw [(hom_equiv_amalgamation (eqv π).2).uniqueCongr.nonempty_congr]
+    rw [unique_subtype_iff_exists_unique]; exact h _ _ (eqv π).2
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for CategoryTheory.Presheaf.isLimit_iff_isSheafFor
 
 /- warning: category_theory.presheaf.subsingleton_iff_is_separated_for -> CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor is a dubious translation:
@@ -188,22 +169,13 @@ theorem subsingleton_iff_isSeparatedFor :
       ∀ E : Aᵒᵖ, IsSeparatedFor (P ⋙ coyoneda.obj E) S :=
   by
   constructor
-  · intro hs E x t₁ t₂ h₁ h₂
-    have hx := is_compatible_of_exists_amalgamation x ⟨t₁, h₁⟩
-    rw [compatible_iff_sieve_compatible] at hx
-    specialize hs hx.cone
-    cases hs
+  · intro hs E x t₁ t₂ h₁ h₂; have hx := is_compatible_of_exists_amalgamation x ⟨t₁, h₁⟩
+    rw [compatible_iff_sieve_compatible] at hx; specialize hs hx.cone; cases hs
     have := (hom_equiv_amalgamation hx).symm.Injective
     exact Subtype.ext_iff.1 (@this ⟨t₁, h₁⟩ ⟨t₂, h₂⟩ (hs _ _))
-  · rintro h ⟨E, π⟩
-    let eqv := cones_equiv_sieve_compatible_family P S (op E)
-    constructor
-    rw [← eqv.left_inv π]
-    intro f₁ f₂
-    let eqv' := hom_equiv_amalgamation (eqv π).2
-    apply eqv'.injective
-    ext
-    apply h _ (eqv π).1 <;> exact (eqv' _).2
+  · rintro h ⟨E, π⟩; let eqv := cones_equiv_sieve_compatible_family P S (op E); constructor
+    rw [← eqv.left_inv π]; intro f₁ f₂; let eqv' := hom_equiv_amalgamation (eqv π).2
+    apply eqv'.injective; ext; apply h _ (eqv π).1 <;> exact (eqv' _).2
 #align category_theory.presheaf.subsingleton_iff_is_separated_for CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor
 
 /- warning: category_theory.presheaf.is_sheaf_iff_is_limit -> CategoryTheory.Presheaf.isSheaf_iff_isLimit is a dubious translation:
@@ -253,9 +225,7 @@ theorem isSheaf_iff_isLimit_pretopology [HasPullbacks C] (K : Pretopology C) :
     IsSheaf (K.toGrothendieck C) P ↔
       ∀ ⦃X : C⦄ (R : Presieve X),
         R ∈ K X → Nonempty (IsLimit (P.mapCone (generate R).arrows.Cocone.op)) :=
-  by
-  dsimp [is_sheaf]
-  simp_rw [is_sheaf_pretopology]
+  by dsimp [is_sheaf]; simp_rw [is_sheaf_pretopology];
   exact
     ⟨fun h X R hR => (is_limit_iff_is_sheaf_for_presieve P R).2 fun E => h E.unop R hR,
       fun h E X R hR => (is_limit_iff_is_sheaf_for_presieve P R).1 (h R hR) (op E)⟩
@@ -528,23 +498,14 @@ theorem Sheaf.Hom.add_app (f g : P ⟶ Q) (U) : (f + g).1.app U = f.1.app U + g.
 
 instance : AddCommGroup (P ⟶ Q) :=
   Function.Injective.addCommGroup (fun f : Sheaf.Hom P Q => f.1) (fun _ _ h => Sheaf.Hom.ext _ _ h)
-    rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
-    (fun _ _ => by
-      ext
-      simpa [*] )
-    fun _ _ => by
-    ext
-    simpa [*]
+    rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => by ext; simpa [*] ) fun _ _ =>
+    by ext; simpa [*]
 
 instance : Preadditive (Sheaf J A)
     where
   homGroup P Q := inferInstance
-  add_comp P Q R f f' g := by
-    ext
-    simp
-  comp_add P Q R f g g' := by
-    ext
-    simp
+  add_comp P Q R f f' g := by ext; simp
+  comp_add P Q R f g g' := by ext; simp
 
 end Preadditive
 
Diff
@@ -81,10 +81,7 @@ open Presieve Presieve.FamilyOfElements Limits
 variable (P : Cᵒᵖ ⥤ A) {X : C} (S : Sieve X) (R : Presieve X) (E : Aᵒᵖ)
 
 /- warning: category_theory.presheaf.cones_equiv_sieve_compatible_family -> CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (E : Opposite.{succ u4} A), Equiv.{succ (max (max u3 u1) u2), max 1 (succ u3) (succ u1) (succ u2)} (CategoryTheory.Functor.obj.{u2, max (max u3 u1) u2, u4, succ (max (max u3 u1) u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) Type.{max (max u3 u1) u2} CategoryTheory.types.{max (max u3 u1) u2} (CategoryTheory.Functor.cones.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) E) (Subtype.{max (succ u3) (succ u1) (succ u2)} (CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S)) (fun (x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S)) => CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) X S x))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (E : Opposite.{succ u4} A), Equiv.{max (max (succ u3) (succ u1)) (succ u2), max 1 (max (succ u3) (succ u1)) (succ u2)} (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u1)) (succ u2), u4, max (max (succ u3) (succ u1)) (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) Type.{max (max u3 u1) u2} (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u1) u2, max (max (succ u3) (succ u1)) (succ u2)} Type.{max (max u3 u1) u2} (CategoryTheory.Category.toCategoryStruct.{max (max u3 u1) u2, max (max (succ u3) (succ u1)) (succ u2)} Type.{max (max u3 u1) u2} CategoryTheory.types.{max (max u3 u1) u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u1) u2, u4, max (max (succ u3) (succ u1)) (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) Type.{max (max u3 u1) u2} CategoryTheory.types.{max (max u3 u1) u2} (CategoryTheory.Functor.cones.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P))) E) (Subtype.{max (max (succ u3) (succ u1)) (succ u2)} (CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (fun (x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) => CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) X S x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamilyₓ'. -/
 /-- Given a sieve `S` on `X : C`, a presheaf `P : Cᵒᵖ ⥤ A`, and an object `E` of `A`,
     the cones over the natural diagram `S.arrows.diagram.op ⋙ P` associated to `S` and `P`
@@ -126,10 +123,7 @@ def conesEquivSieveCompatibleFamily :
 variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S} (hx : x.SieveCompatible)
 
 /- warning: category_theory.presieve.family_of_elements.sieve_compatible.cone -> CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] {P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2} {X : C} {S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X} {E : Opposite.{succ u4} A} {x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S)}, (CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) X S x) -> (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] {P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2} {X : C} {S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X} {E : Opposite.{succ u4} A} {x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)}, (CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) X S x) -> (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presieve.family_of_elements.sieve_compatible.cone CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.coneₓ'. -/
 /-- The cone corresponding to a sieve_compatible family of elements, dot notation enabled. -/
 @[simp]
@@ -140,10 +134,7 @@ def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone : Cone (S.arro
 #align category_theory.presieve.family_of_elements.sieve_compatible.cone CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone
 
 /- warning: category_theory.presheaf.hom_equiv_amalgamation -> CategoryTheory.Presheaf.homEquivAmalgamation is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] {P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2} {X : C} {S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X} {E : Opposite.{succ u4} A} {x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S)} (hx : CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) X S x), Equiv.{succ u2, succ u2} (Quiver.Hom.{succ u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) (CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone.{u1, u2, u3, u4} C _inst_1 A _inst_2 P X S E x hx) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))))) (Subtype.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (Opposite.op.{succ u3} C X)) (fun (t : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (Opposite.op.{succ u3} C X)) => CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) X (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S) x t))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] {P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2} {X : C} {S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X} {E : Opposite.{succ u4} A} {x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)} (hx : CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) X S x), Equiv.{succ u2, succ u2} (Quiver.Hom.{succ u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) (CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone.{u1, u2, u3, u4} C _inst_1 A _inst_2 P X S E x hx) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))))) (Subtype.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E))) (Opposite.op.{succ u3} C X)) (fun (t : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E))) (Opposite.op.{succ u3} C X)) => CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S) x t))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.hom_equiv_amalgamation CategoryTheory.Presheaf.homEquivAmalgamationₓ'. -/
 /-- Cone morphisms from the cone corresponding to a sieve_compatible family to the natural
     cone associated to a sieve `S` and a presheaf `P` are in 1-1 correspondence with amalgamations
@@ -163,10 +154,7 @@ def homEquivAmalgamation : (hx.Cone ⟶ P.mapCone S.arrows.Cocone.op) ≃ { t //
 variable (P S)
 
 /- warning: category_theory.presheaf.is_limit_iff_is_sheaf_for -> CategoryTheory.Presheaf.isLimit_iff_isSheafFor is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), Iff (Nonempty.{max (succ (max u3 u1)) (succ u4) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSheafFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), Iff (Nonempty.{max (max (succ u4) (succ (max u3 u1))) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSheafFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_limit_iff_is_sheaf_for CategoryTheory.Presheaf.isLimit_iff_isSheafForₓ'. -/
 /-- Given sieve `S` and presheaf `P : Cᵒᵖ ⥤ A`, their natural associated cone is a limit cone
     iff `Hom (E, P -)` is a sheaf of types for the sieve `S` and all `E : A`. -/
@@ -190,10 +178,7 @@ theorem isLimit_iff_isSheafFor :
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for CategoryTheory.Presheaf.isLimit_iff_isSheafFor
 
 /- warning: category_theory.presheaf.subsingleton_iff_is_separated_for -> CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), Iff (forall (c : CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)), Subsingleton.{succ u2} (Quiver.Hom.{succ u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) c (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSeparatedFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), Iff (forall (c : CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)), Subsingleton.{succ u2} (Quiver.Hom.{succ u2, max (max u4 u2) u3 u1} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) c (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSeparatedFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.subsingleton_iff_is_separated_for CategoryTheory.Presheaf.subsingleton_iff_isSeparatedForₓ'. -/
 /-- Given sieve `S` and presheaf `P : Cᵒᵖ ⥤ A`, their natural associated cone admits at most one
     morphism from every cone in the same category (i.e. over the same diagram),
@@ -222,10 +207,7 @@ theorem subsingleton_iff_isSeparatedFor :
 #align category_theory.presheaf.subsingleton_iff_is_separated_for CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor
 
 /- warning: category_theory.presheaf.is_sheaf_iff_is_limit -> CategoryTheory.Presheaf.isSheaf_iff_isLimit is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2), Iff (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 J P) (forall {{X : C}} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), (Membership.Mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.hasMem.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) S (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ (max u3 u1))} (CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (fun (_x : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) => forall (X : C), Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u1, u3} C _inst_1) J X)) -> (Nonempty.{max (succ (max u3 u1)) (succ u4) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2), Iff (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 J P) (forall {{X : C}} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), (Membership.mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.instMembershipSet.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) S (CategoryTheory.GrothendieckTopology.sieves.{u1, u3} C _inst_1 J X)) -> (Nonempty.{max (max (succ u4) (succ (max u3 u1))) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_iff_is_limit CategoryTheory.Presheaf.isSheaf_iff_isLimitₓ'. -/
 /-- A presheaf `P` is a sheaf for the Grothendieck topology `J` iff for every covering sieve
     `S` of `J`, the natural cone associated to `P` and `S` is a limit cone. -/
@@ -237,10 +219,7 @@ theorem isSheaf_iff_isLimit :
 #align category_theory.presheaf.is_sheaf_iff_is_limit CategoryTheory.Presheaf.isSheaf_iff_isLimit
 
 /- warning: category_theory.presheaf.is_separated_iff_subsingleton -> CategoryTheory.Presheaf.isSeparated_iff_subsingleton is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2), Iff (forall (E : A), CategoryTheory.Presieve.IsSeparated.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) (Opposite.op.{succ u4} A E)))) (forall {{X : C}} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), (Membership.Mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.hasMem.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) S (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ (max u3 u1))} (CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (fun (_x : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) => forall (X : C), Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u1, u3} C _inst_1) J X)) -> (forall (c : CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)), Subsingleton.{succ u2} (Quiver.Hom.{succ u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) c (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2), Iff (forall (E : A), CategoryTheory.Presieve.IsSeparated.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) (Opposite.op.{succ u4} A E)))) (forall {{X : C}} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), (Membership.mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.instMembershipSet.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) S (CategoryTheory.GrothendieckTopology.sieves.{u1, u3} C _inst_1 J X)) -> (forall (c : CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)), Subsingleton.{succ u2} (Quiver.Hom.{succ u2, max (max u4 u2) u3 u1} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) c (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_separated_iff_subsingleton CategoryTheory.Presheaf.isSeparated_iff_subsingletonₓ'. -/
 /-- A presheaf `P` is separated for the Grothendieck topology `J` iff for every covering sieve
     `S` of `J`, the natural cone associated to `P` and `S` admits at most one morphism from every
@@ -253,10 +232,7 @@ theorem isSeparated_iff_subsingleton :
 #align category_theory.presheaf.is_separated_iff_subsingleton CategoryTheory.Presheaf.isSeparated_iff_subsingleton
 
 /- warning: category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve -> CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (R : CategoryTheory.Presieve.{u1, u3} C _inst_1 X), Iff (Nonempty.{max (succ (max u3 u1)) (succ u4) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSheafFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) R)
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (R : CategoryTheory.Presieve.{u1, u3} C _inst_1 X), Iff (Nonempty.{max (max (succ u4) (succ (max u3 u1))) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSheafFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) R)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieveₓ'. -/
 /-- Given presieve `R` and presheaf `P : Cᵒᵖ ⥤ A`, the natural cone associated to `P` and
     the sieve `sieve.generate R` generated by `R` is a limit cone iff `Hom (E, P -)` is a
@@ -268,10 +244,7 @@ theorem isLimit_iff_isSheafFor_presieve :
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve
 
 /- warning: category_theory.presheaf.is_sheaf_iff_is_limit_pretopology -> CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopology is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u3} C _inst_1] (K : CategoryTheory.Pretopology.{u1, u3} C _inst_1 _inst_3), Iff (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 (CategoryTheory.Pretopology.toGrothendieck.{u1, u3} C _inst_1 _inst_3 K) P) (forall {{X : C}} (R : CategoryTheory.Presieve.{u1, u3} C _inst_1 X), (Membership.Mem.{max u3 u1, max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) (Set.hasMem.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) R (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ (max u3 u1))} (CategoryTheory.Pretopology.{u1, u3} C _inst_1 _inst_3) (fun (_x : CategoryTheory.Pretopology.{u1, u3} C _inst_1 _inst_3) => forall (X : C), Set.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) (CategoryTheory.Pretopology.hasCoeToFun.{u1, u3} C _inst_1 _inst_3) K X)) -> (Nonempty.{max (succ (max u3 u1)) (succ u4) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))))))))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u3} C _inst_1] (K : CategoryTheory.Pretopology.{u1, u3} C _inst_1 _inst_3), Iff (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 (CategoryTheory.Pretopology.toGrothendieck.{u1, u3} C _inst_1 _inst_3 K) P) (forall {{X : C}} (R : CategoryTheory.Presieve.{u1, u3} C _inst_1 X), (Membership.mem.{max u3 u1, max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) (Set.instMembershipSet.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) R (CategoryTheory.Pretopology.coverings.{u1, u3} C _inst_1 _inst_3 K X)) -> (Nonempty.{max (max (succ u4) (succ (max u3 u1))) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_iff_is_limit_pretopology CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopologyₓ'. -/
 /-- A presheaf `P` is a sheaf for the Grothendieck topology generated by a pretopology `K`
     iff for every covering presieve `R` of `K`, the natural cone associated to `P` and
@@ -293,10 +266,7 @@ end LimitSheafCondition
 variable {J}
 
 /- warning: category_theory.presheaf.is_sheaf.amalgamate -> CategoryTheory.Presheaf.IsSheaf.amalgamate is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3}, (CategoryTheory.Presheaf.IsSheaf.{u1, max u1 u2, u2, u3} C _inst_1 A _inst_3 J P) -> (forall (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)))), (forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) -> (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X))))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3}, (CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_3 J P) -> (forall (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))), (forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) -> (Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.amalgamate CategoryTheory.Presheaf.IsSheaf.amalgamateₓ'. -/
 /-- This is a wrapper around `presieve.is_sheaf_for.amalgamate` to be used below.
   If `P`s a sheaf, `S` is a cover of `X`, and `x` is a collection of morphisms from `E`
@@ -310,10 +280,7 @@ def IsSheaf.amalgamate {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X :
 #align category_theory.presheaf.is_sheaf.amalgamate CategoryTheory.Presheaf.IsSheaf.amalgamate
 
 /- warning: category_theory.presheaf.is_sheaf.amalgamate_map -> CategoryTheory.Presheaf.IsSheaf.amalgamate_map is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3} (hP : CategoryTheory.Presheaf.IsSheaf.{u1, max u1 u2, u2, u3} C _inst_1 A _inst_3 J P) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)))) (hx : forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I))) (CategoryTheory.Presheaf.IsSheaf.amalgamate.{u1, u2, u3} C _inst_1 J A _inst_3 E X P hP S x hx) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (x I)
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3} (hP : CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_3 J P) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))) (hx : forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I))) (CategoryTheory.Presheaf.IsSheaf.amalgamate.{u1, u2, u3} C _inst_1 J A _inst_3 E X P hP S x hx) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (x I)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_mapₓ'. -/
 @[simp, reassoc]
 theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
@@ -328,10 +295,7 @@ theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E :
 #align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_map
 
 /- warning: category_theory.presheaf.is_sheaf.hom_ext -> CategoryTheory.Presheaf.IsSheaf.hom_ext is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3}, (CategoryTheory.Presheaf.IsSheaf.{u1, max u1 u2, u2, u3} C _inst_1 A _inst_3 J P) -> (forall (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (e₁ : Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X))) (e₂ : Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X))), (forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I))) e₁ (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I))) e₂ (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I))))) -> (Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X))) e₁ e₂))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3}, (CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_3 J P) -> (forall (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (e₁ : Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X))) (e₂ : Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X))), (forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I))) e₁ (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I))) e₂ (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I))))) -> (Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X))) e₁ e₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.hom_ext CategoryTheory.Presheaf.IsSheaf.hom_extₓ'. -/
 theorem IsSheaf.hom_ext {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.cover X) (e₁ e₂ : E ⟶ P.obj (op X))
@@ -555,10 +519,7 @@ instance : Zero (P ⟶ Q) where zero := Sheaf.Hom.mk 0
 instance : Add (P ⟶ Q) where add f g := Sheaf.Hom.mk <| f.1 + g.1
 
 /- warning: category_theory.Sheaf.hom.add_app -> CategoryTheory.Sheaf.Hom.add_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1} {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] [_inst_3 : CategoryTheory.Preadditive.{u2, u4} A _inst_2] {P : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2} {Q : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2} (f : Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (g : Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (U : Opposite.{succ u3} C), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (instHAdd.{max u3 u2} (Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (CategoryTheory.Quiver.Hom.hasAdd.{u1, u2, u3, u4} C _inst_1 J A _inst_2 _inst_3 P Q)) f g)) U) (HAdd.hAdd.{u2, u2, u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (instHAdd.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (AddZeroClass.toHasAdd.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (CategoryTheory.Preadditive.homGroup.{u2, u4} A _inst_2 _inst_3 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)))))))) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q f) U) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q g) U))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1} {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] [_inst_3 : CategoryTheory.Preadditive.{u2, u4} A _inst_2] {P : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2} {Q : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2} (f : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (g : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (U : Opposite.{succ u3} C), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (instHAdd.{max u3 u2} (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (CategoryTheory.instAddHomSheafToQuiverToCategoryStructInstCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2 _inst_3 P Q)) f g)) U) (HAdd.hAdd.{u2, u2, u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (instHAdd.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (AddZeroClass.toAdd.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (CategoryTheory.Preadditive.homGroup.{u2, u4} A _inst_2 _inst_3 (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)))))))) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q f) U) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q g) U))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.hom.add_app CategoryTheory.Sheaf.Hom.add_appₓ'. -/
 @[simp]
 theorem Sheaf.Hom.add_app (f g : P ⟶ Q) (U) : (f + g).1.app U = f.1.app U + g.1.app U :=
Diff
@@ -315,7 +315,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3} (hP : CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_3 J P) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))) (hx : forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I))) (CategoryTheory.Presheaf.IsSheaf.amalgamate.{u1, u2, u3} C _inst_1 J A _inst_3 E X P hP S x hx) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (x I)
 Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_mapₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.cover X) (x : ∀ I : S.arrow, E ⟶ P.obj (op I.y))
     (hx : ∀ I : S.Relation, x I.fst ≫ P.map I.g₁.op = x I.snd ≫ P.map I.g₂.op) (I : S.arrow) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard, Bhavik Mehta
 
 ! This file was ported from Lean 3 source module category_theory.sites.sheaf
-! leanprover-community/mathlib commit 75be6b616681ab6ca66d798ead117e75cd64f125
+! leanprover-community/mathlib commit 2efd2423f8d25fa57cf7a179f5d8652ab4d0df44
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -569,11 +569,9 @@ instance : AddCommGroup (P ⟶ Q) :=
   Function.Injective.addCommGroup (fun f : Sheaf.Hom P Q => f.1) (fun _ _ h => Sheaf.Hom.ext _ _ h)
     rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
     (fun _ _ => by
-      dsimp at *
       ext
       simpa [*] )
     fun _ _ => by
-    dsimp at *
     ext
     simpa [*]
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard, Bhavik Mehta
 
 ! This file was ported from Lean 3 source module category_theory.sites.sheaf
-! leanprover-community/mathlib commit a67ec23dd8dc08195d77b6df2cd21f9c64989131
+! leanprover-community/mathlib commit 75be6b616681ab6ca66d798ead117e75cd64f125
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -17,6 +17,9 @@ import Mathbin.CategoryTheory.Sites.SheafOfTypes
 /-!
 # Sheaves taking values in a category
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 If C is a category with a Grothendieck topology, we define the notion of a sheaf taking values in
 an arbitrary category `A`. We follow the definition in https://stacks.math.columbia.edu/tag/00VR,
 noting that the presheaf of sets "defined above" can be seen in the comments between tags 00VQ and
Diff
@@ -59,6 +59,7 @@ variable {A : Type u₂} [Category.{v₂} A]
 
 variable (J : GrothendieckTopology C)
 
+#print CategoryTheory.Presheaf.IsSheaf /-
 -- We follow https://stacks.math.columbia.edu/tag/00VL definition 00VR
 /-- A sheaf of A is a presheaf P : Cᵒᵖ => A such that for every E : A, the
 presheaf of types given by sending U : C to Hom_{A}(E, P U) is a sheaf of types.
@@ -68,6 +69,7 @@ https://stacks.math.columbia.edu/tag/00VR
 def IsSheaf (P : Cᵒᵖ ⥤ A) : Prop :=
   ∀ E : A, Presieve.IsSheaf J (P ⋙ coyoneda.obj (op E))
 #align category_theory.presheaf.is_sheaf CategoryTheory.Presheaf.IsSheaf
+-/
 
 section LimitSheafCondition
 
@@ -75,6 +77,12 @@ open Presieve Presieve.FamilyOfElements Limits
 
 variable (P : Cᵒᵖ ⥤ A) {X : C} (S : Sieve X) (R : Presieve X) (E : Aᵒᵖ)
 
+/- warning: category_theory.presheaf.cones_equiv_sieve_compatible_family -> CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (E : Opposite.{succ u4} A), Equiv.{succ (max (max u3 u1) u2), max 1 (succ u3) (succ u1) (succ u2)} (CategoryTheory.Functor.obj.{u2, max (max u3 u1) u2, u4, succ (max (max u3 u1) u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) Type.{max (max u3 u1) u2} CategoryTheory.types.{max (max u3 u1) u2} (CategoryTheory.Functor.cones.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) E) (Subtype.{max (succ u3) (succ u1) (succ u2)} (CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S)) (fun (x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S)) => CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) X S x))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (E : Opposite.{succ u4} A), Equiv.{max (max (succ u3) (succ u1)) (succ u2), max 1 (max (succ u3) (succ u1)) (succ u2)} (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u1)) (succ u2), u4, max (max (succ u3) (succ u1)) (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) Type.{max (max u3 u1) u2} (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u1) u2, max (max (succ u3) (succ u1)) (succ u2)} Type.{max (max u3 u1) u2} (CategoryTheory.Category.toCategoryStruct.{max (max u3 u1) u2, max (max (succ u3) (succ u1)) (succ u2)} Type.{max (max u3 u1) u2} CategoryTheory.types.{max (max u3 u1) u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u1) u2, u4, max (max (succ u3) (succ u1)) (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) Type.{max (max u3 u1) u2} CategoryTheory.types.{max (max u3 u1) u2} (CategoryTheory.Functor.cones.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P))) E) (Subtype.{max (max (succ u3) (succ u1)) (succ u2)} (CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (fun (x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) => CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) X S x))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamilyₓ'. -/
 /-- Given a sieve `S` on `X : C`, a presheaf `P : Cᵒᵖ ⥤ A`, and an object `E` of `A`,
     the cones over the natural diagram `S.arrows.diagram.op ⋙ P` associated to `S` and `P`
     with cone point `E` are in 1-1 correspondence with sieve_compatible family of elements
@@ -114,6 +122,12 @@ def conesEquivSieveCompatibleFamily :
 
 variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S} (hx : x.SieveCompatible)
 
+/- warning: category_theory.presieve.family_of_elements.sieve_compatible.cone -> CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] {P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2} {X : C} {S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X} {E : Opposite.{succ u4} A} {x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S)}, (CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) X S x) -> (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] {P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2} {X : C} {S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X} {E : Opposite.{succ u4} A} {x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)}, (CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) X S x) -> (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P))
+Case conversion may be inaccurate. Consider using '#align category_theory.presieve.family_of_elements.sieve_compatible.cone CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.coneₓ'. -/
 /-- The cone corresponding to a sieve_compatible family of elements, dot notation enabled. -/
 @[simp]
 def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone : Cone (S.arrows.diagram.op ⋙ P)
@@ -122,6 +136,12 @@ def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone : Cone (S.arro
   π := (conesEquivSieveCompatibleFamily P S E).invFun ⟨x, hx⟩
 #align category_theory.presieve.family_of_elements.sieve_compatible.cone CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone
 
+/- warning: category_theory.presheaf.hom_equiv_amalgamation -> CategoryTheory.Presheaf.homEquivAmalgamation is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] {P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2} {X : C} {S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X} {E : Opposite.{succ u4} A} {x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S)} (hx : CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) X S x), Equiv.{succ u2, succ u2} (Quiver.Hom.{succ u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) (CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone.{u1, u2, u3, u4} C _inst_1 A _inst_2 P X S E x hx) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))))) (Subtype.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (Opposite.op.{succ u3} C X)) (fun (t : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (Opposite.op.{succ u3} C X)) => CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) X (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S) x t))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] {P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2} {X : C} {S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X} {E : Opposite.{succ u4} A} {x : CategoryTheory.Presieve.FamilyOfElements.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)} (hx : CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) X S x), Equiv.{succ u2, succ u2} (Quiver.Hom.{succ u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) (CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone.{u1, u2, u3, u4} C _inst_1 A _inst_2 P X S E x hx) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))))) (Subtype.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E))) (Opposite.op.{succ u3} C X)) (fun (t : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E))) (Opposite.op.{succ u3} C X)) => CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{u2, u1, u3} C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S) x t))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.hom_equiv_amalgamation CategoryTheory.Presheaf.homEquivAmalgamationₓ'. -/
 /-- Cone morphisms from the cone corresponding to a sieve_compatible family to the natural
     cone associated to a sieve `S` and a presheaf `P` are in 1-1 correspondence with amalgamations
     of the family. -/
@@ -139,6 +159,12 @@ def homEquivAmalgamation : (hx.Cone ⟶ P.mapCone S.arrows.Cocone.op) ≃ { t //
 
 variable (P S)
 
+/- warning: category_theory.presheaf.is_limit_iff_is_sheaf_for -> CategoryTheory.Presheaf.isLimit_iff_isSheafFor is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), Iff (Nonempty.{max (succ (max u3 u1)) (succ u4) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSheafFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), Iff (Nonempty.{max (max (succ u4) (succ (max u3 u1))) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSheafFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_limit_iff_is_sheaf_for CategoryTheory.Presheaf.isLimit_iff_isSheafForₓ'. -/
 /-- Given sieve `S` and presheaf `P : Cᵒᵖ ⥤ A`, their natural associated cone is a limit cone
     iff `Hom (E, P -)` is a sheaf of types for the sieve `S` and all `E : A`. -/
 theorem isLimit_iff_isSheafFor :
@@ -160,6 +186,12 @@ theorem isLimit_iff_isSheafFor :
     exact h _ _ (eqv π).2
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for CategoryTheory.Presheaf.isLimit_iff_isSheafFor
 
+/- warning: category_theory.presheaf.subsingleton_iff_is_separated_for -> CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), Iff (forall (c : CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)), Subsingleton.{succ u2} (Quiver.Hom.{succ u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) c (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSeparatedFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (fun (_x : CategoryTheory.Sieve.{u1, u3} C _inst_1 X) => CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.hasCoeToFun.{u1, u3} C _inst_1 X) S))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), Iff (forall (c : CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)), Subsingleton.{succ u2} (Quiver.Hom.{succ u2, max (max u4 u2) u3 u1} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) c (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSeparatedFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.subsingleton_iff_is_separated_for CategoryTheory.Presheaf.subsingleton_iff_isSeparatedForₓ'. -/
 /-- Given sieve `S` and presheaf `P : Cᵒᵖ ⥤ A`, their natural associated cone admits at most one
     morphism from every cone in the same category (i.e. over the same diagram),
     iff `Hom (E, P -)`is separated for the sieve `S` and all `E : A`. -/
@@ -186,6 +218,12 @@ theorem subsingleton_iff_isSeparatedFor :
     apply h _ (eqv π).1 <;> exact (eqv' _).2
 #align category_theory.presheaf.subsingleton_iff_is_separated_for CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor
 
+/- warning: category_theory.presheaf.is_sheaf_iff_is_limit -> CategoryTheory.Presheaf.isSheaf_iff_isLimit is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2), Iff (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 J P) (forall {{X : C}} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), (Membership.Mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.hasMem.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) S (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ (max u3 u1))} (CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (fun (_x : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) => forall (X : C), Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u1, u3} C _inst_1) J X)) -> (Nonempty.{max (succ (max u3 u1)) (succ u4) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2), Iff (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 J P) (forall {{X : C}} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), (Membership.mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.instMembershipSet.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) S (CategoryTheory.GrothendieckTopology.sieves.{u1, u3} C _inst_1 J X)) -> (Nonempty.{max (max (succ u4) (succ (max u3 u1))) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_iff_is_limit CategoryTheory.Presheaf.isSheaf_iff_isLimitₓ'. -/
 /-- A presheaf `P` is a sheaf for the Grothendieck topology `J` iff for every covering sieve
     `S` of `J`, the natural cone associated to `P` and `S` is a limit cone. -/
 theorem isSheaf_iff_isLimit :
@@ -195,6 +233,12 @@ theorem isSheaf_iff_isLimit :
     (isLimit_iff_isSheafFor P S).1 (h S hS) (op E)⟩
 #align category_theory.presheaf.is_sheaf_iff_is_limit CategoryTheory.Presheaf.isSheaf_iff_isLimit
 
+/- warning: category_theory.presheaf.is_separated_iff_subsingleton -> CategoryTheory.Presheaf.isSeparated_iff_subsingleton is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2), Iff (forall (E : A), CategoryTheory.Presieve.IsSeparated.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) (Opposite.op.{succ u4} A E)))) (forall {{X : C}} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), (Membership.Mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.hasMem.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) S (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ (max u3 u1))} (CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (fun (_x : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) => forall (X : C), Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u1, u3} C _inst_1) J X)) -> (forall (c : CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)), Subsingleton.{succ u2} (Quiver.Hom.{succ u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max u3 u1) u4 u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) c (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2), Iff (forall (E : A), CategoryTheory.Presieve.IsSeparated.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) (Opposite.op.{succ u4} A E)))) (forall {{X : C}} (S : CategoryTheory.Sieve.{u1, u3} C _inst_1 X), (Membership.mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.instMembershipSet.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) S (CategoryTheory.GrothendieckTopology.sieves.{u1, u3} C _inst_1 J X)) -> (forall (c : CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)), Subsingleton.{succ u2} (Quiver.Hom.{succ u2, max (max u4 u2) u3 u1} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Category.toCategoryStruct.{u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Limits.Cone.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)) (CategoryTheory.Limits.Cone.category.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) P)))) c (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X S)))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_separated_iff_subsingleton CategoryTheory.Presheaf.isSeparated_iff_subsingletonₓ'. -/
 /-- A presheaf `P` is separated for the Grothendieck topology `J` iff for every covering sieve
     `S` of `J`, the natural cone associated to `P` and `S` admits at most one morphism from every
     cone in the same category. -/
@@ -205,6 +249,12 @@ theorem isSeparated_iff_subsingleton :
     (subsingleton_iff_isSeparatedFor P S).1 (h S hS) (op E)⟩
 #align category_theory.presheaf.is_separated_iff_subsingleton CategoryTheory.Presheaf.isSeparated_iff_subsingleton
 
+/- warning: category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve -> CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (R : CategoryTheory.Presieve.{u1, u3} C _inst_1 X), Iff (Nonempty.{max (succ (max u3 u1)) (succ u4) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSheafFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (CategoryTheory.Functor.obj.{u2, max u4 u2, u4, max u2 u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2) E)) R)
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) {X : C} (R : CategoryTheory.Presieve.{u1, u3} C _inst_1 X), Iff (Nonempty.{max (max (succ u4) (succ (max u3 u1))) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))))))) (forall (E : Opposite.{succ u4} A), CategoryTheory.Presieve.IsSheafFor.{u2, u1, u3} C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u2, u3, u4, succ u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 Type.{u2} CategoryTheory.types.{u2} P (Prefunctor.obj.{succ u2, max (succ u4) (succ u2), u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.toCategoryStruct.{u2, u4} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2))) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max u4 (succ u2)} (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}))) (CategoryTheory.Functor.toPrefunctor.{u2, max u4 u2, u4, max u4 (succ u2)} (Opposite.{succ u4} A) (CategoryTheory.Category.opposite.{u2, u4} A _inst_2) (CategoryTheory.Functor.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u2, u2, u4, succ u2} A _inst_2 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.coyoneda.{u2, u4} A _inst_2)) E)) R)
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieveₓ'. -/
 /-- Given presieve `R` and presheaf `P : Cᵒᵖ ⥤ A`, the natural cone associated to `P` and
     the sieve `sieve.generate R` generated by `R` is a limit cone iff `Hom (E, P -)` is a
     sheaf of types for the presieve `R` and all `E : A`. -/
@@ -214,6 +264,12 @@ theorem isLimit_iff_isSheafFor_presieve :
   (isLimit_iff_isSheafFor P _).trans (forall_congr' fun _ => (isSheafFor_iff_generate _).symm)
 #align category_theory.presheaf.is_limit_iff_is_sheaf_for_presieve CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve
 
+/- warning: category_theory.presheaf.is_sheaf_iff_is_limit_pretopology -> CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopology is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u3} C _inst_1] (K : CategoryTheory.Pretopology.{u1, u3} C _inst_1 _inst_3), Iff (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 (CategoryTheory.Pretopology.toGrothendieck.{u1, u3} C _inst_1 _inst_3 K) P) (forall {{X : C}} (R : CategoryTheory.Presieve.{u1, u3} C _inst_1 X), (Membership.Mem.{max u3 u1, max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) (Set.hasMem.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) R (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ (max u3 u1))} (CategoryTheory.Pretopology.{u1, u3} C _inst_1 _inst_3) (fun (_x : CategoryTheory.Pretopology.{u1, u3} C _inst_1 _inst_3) => forall (X : C), Set.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) (CategoryTheory.Pretopology.hasCoeToFun.{u1, u3} C _inst_1 _inst_3) K X)) -> (Nonempty.{max (succ (max u3 u1)) (succ u4) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))))))))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (P : CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u3} C _inst_1] (K : CategoryTheory.Pretopology.{u1, u3} C _inst_1 _inst_3), Iff (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 (CategoryTheory.Pretopology.toGrothendieck.{u1, u3} C _inst_1 _inst_3 K) P) (forall {{X : C}} (R : CategoryTheory.Presieve.{u1, u3} C _inst_1 X), (Membership.mem.{max u3 u1, max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) (Set.instMembershipSet.{max u3 u1} (CategoryTheory.Presieve.{u1, u3} C _inst_1 X)) R (CategoryTheory.Pretopology.coverings.{u1, u3} C _inst_1 _inst_3 K X)) -> (Nonempty.{max (max (succ u4) (succ (max u3 u1))) (succ u2)} (CategoryTheory.Limits.IsLimit.{u1, u2, max u3 u1, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) A _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) P) (CategoryTheory.Functor.mapCone.{u1, u1, u2, max u3 u1, u3, u4} (Opposite.{succ (max u3 u1)} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Category.opposite.{u1, max u3 u1} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 P (CategoryTheory.Functor.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R)))) (CategoryTheory.Limits.Cocone.op.{u1, u1, max u3 u1, u3} (CategoryTheory.FullSubcategory.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.FullSubcategory.category.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) C _inst_1 (CategoryTheory.Presieve.diagram.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))) (CategoryTheory.Presieve.cocone.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.arrows.{u1, u3} C _inst_1 X (CategoryTheory.Sieve.generate.{u1, u3} C _inst_1 X R))))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_iff_is_limit_pretopology CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopologyₓ'. -/
 /-- A presheaf `P` is a sheaf for the Grothendieck topology generated by a pretopology `K`
     iff for every covering presieve `R` of `K`, the natural cone associated to `P` and
     `sieve.generate R` is a limit cone. -/
@@ -233,6 +289,12 @@ end LimitSheafCondition
 
 variable {J}
 
+/- warning: category_theory.presheaf.is_sheaf.amalgamate -> CategoryTheory.Presheaf.IsSheaf.amalgamate is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3}, (CategoryTheory.Presheaf.IsSheaf.{u1, max u1 u2, u2, u3} C _inst_1 A _inst_3 J P) -> (forall (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)))), (forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) -> (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X))))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3}, (CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_3 J P) -> (forall (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))), (forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) -> (Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X))))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.amalgamate CategoryTheory.Presheaf.IsSheaf.amalgamateₓ'. -/
 /-- This is a wrapper around `presieve.is_sheaf_for.amalgamate` to be used below.
   If `P`s a sheaf, `S` is a cover of `X`, and `x` is a collection of morphisms from `E`
   to `P` evaluated at terms in the cover which are compatible, then we can amalgamate
@@ -244,6 +306,12 @@ def IsSheaf.amalgamate {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X :
     hx ⟨Y₁, Y₂, Z, g₁, g₂, f₁, f₂, h₁, h₂, w⟩
 #align category_theory.presheaf.is_sheaf.amalgamate CategoryTheory.Presheaf.IsSheaf.amalgamate
 
+/- warning: category_theory.presheaf.is_sheaf.amalgamate_map -> CategoryTheory.Presheaf.IsSheaf.amalgamate_map is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3} (hP : CategoryTheory.Presheaf.IsSheaf.{u1, max u1 u2, u2, u3} C _inst_1 A _inst_3 J P) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)))) (hx : forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I))) (CategoryTheory.Presheaf.IsSheaf.amalgamate.{u1, u2, u3} C _inst_1 J A _inst_3 E X P hP S x hx) (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (x I)
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3} (hP : CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_3 J P) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (x : forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))) (hx : forall (I : CategoryTheory.GrothendieckTopology.Cover.Relation.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.fst.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₁.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₁.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)))) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I))) (x (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I)) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S (CategoryTheory.GrothendieckTopology.Cover.Relation.snd.{u1, u2} C _inst_1 X J S I))) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Relation.Z.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.Y₂.{u1, u2} C _inst_1 X J S I) (CategoryTheory.GrothendieckTopology.Cover.Relation.g₂.{u1, u2} C _inst_1 X J S I))))) (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I))) (CategoryTheory.Presheaf.IsSheaf.amalgamate.{u1, u2, u3} C _inst_1 J A _inst_3 E X P hP S x hx) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (x I)
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_mapₓ'. -/
 @[simp, reassoc.1]
 theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.cover X) (x : ∀ I : S.arrow, E ⟶ P.obj (op I.y))
@@ -256,20 +324,34 @@ theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E :
       (fun Y₁ Y₂ Z g₁ g₂ f₁ f₂ h₁ h₂ w => hx ⟨Y₁, Y₂, Z, g₁, g₂, f₁, f₂, h₁, h₂, w⟩) f hf
 #align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_map
 
+/- warning: category_theory.presheaf.is_sheaf.hom_ext -> CategoryTheory.Presheaf.IsSheaf.hom_ext is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3}, (CategoryTheory.Presheaf.IsSheaf.{u1, max u1 u2, u2, u3} C _inst_1 A _inst_3 J P) -> (forall (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (e₁ : Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X))) (e₂ : Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X))), (forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I))) e₁ (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I))) e₂ (CategoryTheory.Functor.map.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I))))) -> (Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_3)) E (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P (Opposite.op.{succ u2} C X))) e₁ e₂))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1} {A : Type.{u3}} [_inst_3 : CategoryTheory.Category.{max u1 u2, u3} A] {E : A} {X : C} {P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3}, (CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_3 J P) -> (forall (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X) (e₁ : Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X))) (e₂ : Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X))), (forall (I : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u1, u2} C _inst_1 X J S), Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I))) e₁ (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I)))) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I))) e₂ (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X) (Opposite.op.{succ u2} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I)) (Quiver.Hom.op.{u2, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u1, u2} C _inst_1 X J S I) X (CategoryTheory.GrothendieckTopology.Cover.Arrow.f.{u1, u2} C _inst_1 X J S I))))) -> (Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) E (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_3 P) (Opposite.op.{succ u2} C X))) e₁ e₂))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf.hom_ext CategoryTheory.Presheaf.IsSheaf.hom_extₓ'. -/
 theorem IsSheaf.hom_ext {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.cover X) (e₁ e₂ : E ⟶ P.obj (op X))
     (h : ∀ I : S.arrow, e₁ ≫ P.map I.f.op = e₂ ≫ P.map I.f.op) : e₁ = e₂ :=
   (hP _ _ S.condition).IsSeparatedFor.ext fun Y f hf => h ⟨Y, f, hf⟩
 #align category_theory.presheaf.is_sheaf.hom_ext CategoryTheory.Presheaf.IsSheaf.hom_ext
 
+#print CategoryTheory.Presheaf.isSheaf_of_iso_iff /-
 theorem isSheaf_of_iso_iff {P P' : Cᵒᵖ ⥤ A} (e : P ≅ P') : IsSheaf J P ↔ IsSheaf J P' :=
   forall_congr' fun a =>
     ⟨Presieve.isSheaf_iso J (isoWhiskerRight e _),
       Presieve.isSheaf_iso J (isoWhiskerRight e.symm _)⟩
 #align category_theory.presheaf.is_sheaf_of_iso_iff CategoryTheory.Presheaf.isSheaf_of_iso_iff
+-/
 
 variable (J)
 
+/- warning: category_theory.presheaf.is_sheaf_of_is_terminal -> CategoryTheory.Presheaf.isSheaf_of_isTerminal is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) {X : A}, (CategoryTheory.Limits.IsTerminal.{u2, u4} A _inst_2 X) -> (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 J (CategoryTheory.Functor.obj.{u2, max u3 u2, u4, max u1 u2 u3 u4} A _inst_2 (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.const.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) X))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) {X : A}, (CategoryTheory.Limits.IsTerminal.{u2, u4} A _inst_2 X) -> (CategoryTheory.Presheaf.IsSheaf.{u1, u2, u3, u4} C _inst_1 A _inst_2 J (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u4, max (max (max u3 u1) u2) u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u1) u4) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u1) u4) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u4, max (max (max u3 u1) u4) u2} A _inst_2 (CategoryTheory.Functor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2) (CategoryTheory.Functor.const.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_of_is_terminal CategoryTheory.Presheaf.isSheaf_of_isTerminalₓ'. -/
 theorem isSheaf_of_isTerminal {X : A} (hX : IsTerminal X) :
     Presheaf.IsSheaf J ((CategoryTheory.Functor.const _).obj X) := fun _ _ _ _ _ _ =>
   ⟨hX.from _, fun _ _ _ => hX.hom_ext _ _, fun _ _ => hX.hom_ext _ _⟩
@@ -283,21 +365,25 @@ variable (J : GrothendieckTopology C)
 
 variable (A : Type u₂) [Category.{v₂} A]
 
+#print CategoryTheory.Sheaf /-
 /-- The category of sheaves taking values in `A` on a grothendieck topology. -/
 structure Sheaf where
   val : Cᵒᵖ ⥤ A
   cond : Presheaf.IsSheaf J val
 #align category_theory.Sheaf CategoryTheory.Sheaf
+-/
 
 namespace Sheaf
 
 variable {J A}
 
+#print CategoryTheory.Sheaf.Hom /-
 /-- Morphisms between sheaves are just morphisms of presheaves. -/
 @[ext]
 structure Hom (X Y : Sheaf J A) where
   val : X.val ⟶ Y.val
 #align category_theory.Sheaf.hom CategoryTheory.Sheaf.Hom
+-/
 
 @[simps]
 instance : Category (Sheaf J A) where
@@ -314,6 +400,7 @@ instance (X : Sheaf J A) : Inhabited (Hom X X) :=
 
 end Sheaf
 
+#print CategoryTheory.sheafToPresheaf /-
 /-- The inclusion functor from sheaves to presheaves. -/
 @[simps]
 def sheafToPresheaf : Sheaf J A ⥤ Cᵒᵖ ⥤ A
@@ -323,28 +410,36 @@ def sheafToPresheaf : Sheaf J A ⥤ Cᵒᵖ ⥤ A
   map_id' X := rfl
   map_comp' X Y Z f g := rfl
 #align category_theory.Sheaf_to_presheaf CategoryTheory.sheafToPresheaf
+-/
 
 instance : Full (sheafToPresheaf J A) where preimage X Y f := ⟨f⟩
 
 instance : Faithful (sheafToPresheaf J A) where
 
+#print CategoryTheory.Sheaf.Hom.mono_of_presheaf_mono /-
 /-- This is stated as a lemma to prevent class search from forming a loop since a sheaf morphism is
 monic if and only if it is monic as a presheaf morphism (under suitable assumption).-/
 theorem Sheaf.Hom.mono_of_presheaf_mono {F G : Sheaf J A} (f : F ⟶ G) [h : Mono f.1] : Mono f :=
   (sheafToPresheaf J A).mono_of_mono_map h
 #align category_theory.Sheaf.hom.mono_of_presheaf_mono CategoryTheory.Sheaf.Hom.mono_of_presheaf_mono
+-/
 
+#print CategoryTheory.Sheaf.Hom.epi_of_presheaf_epi /-
 instance Sheaf.Hom.epi_of_presheaf_epi {F G : Sheaf J A} (f : F ⟶ G) [h : Epi f.1] : Epi f :=
   (sheafToPresheaf J A).epi_of_epi_map h
 #align category_theory.Sheaf.hom.epi_of_presheaf_epi CategoryTheory.Sheaf.Hom.epi_of_presheaf_epi
+-/
 
+#print CategoryTheory.sheafOver /-
 /-- The sheaf of sections guaranteed by the sheaf condition. -/
 @[simps]
 def sheafOver {A : Type u₂} [Category.{v₂} A] {J : GrothendieckTopology C} (ℱ : Sheaf J A) (E : A) :
     SheafOfTypes J :=
   ⟨ℱ.val ⋙ coyoneda.obj (op E), ℱ.cond E⟩
 #align category_theory.sheaf_over CategoryTheory.sheafOver
+-/
 
+#print CategoryTheory.isSheaf_iff_isSheaf_of_type /-
 theorem isSheaf_iff_isSheaf_of_type (P : Cᵒᵖ ⥤ Type w) :
     Presheaf.IsSheaf J P ↔ Presieve.IsSheaf J P :=
   by
@@ -366,7 +461,14 @@ theorem isSheaf_iff_isSheaf_of_type (P : Cᵒᵖ ⥤ Type w) :
       rw [presieve.is_sheaf_for.valid_glue _ _ _ hf, ← hy _ hf]
       rfl
 #align category_theory.is_sheaf_iff_is_sheaf_of_type CategoryTheory.isSheaf_iff_isSheaf_of_type
+-/
 
+/- warning: category_theory.Sheaf_equiv_SheafOfTypes -> CategoryTheory.sheafEquivSheafOfTypes 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), CategoryTheory.Equivalence.{max u3 u1, max u1 u3, max u3 (succ u1) u2 u1, max u3 u2 (succ u1)} (CategoryTheory.Sheaf.{u2, u1, u3, succ u1} C _inst_1 J Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, u1, u3, succ u1} C _inst_1 J Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.SheafOfTypes.{u1, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, u1} C _inst_1 J)
+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), CategoryTheory.Equivalence.{max u3 u1, max u3 u1, max (max (max (succ u1) u3) u1) u2, max (max u3 u2) (succ u1)} (CategoryTheory.Sheaf.{u2, u1, u3, succ u1} C _inst_1 J Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.SheafOfTypes.{u1, u2, u3} C _inst_1 J) (CategoryTheory.Sheaf.instCategorySheaf.{u2, u1, u3, succ u1} C _inst_1 J Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, u1} C _inst_1 J)
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf_equiv_SheafOfTypes CategoryTheory.sheafEquivSheafOfTypesₓ'. -/
 /-- The category of sheaves taking values in Type is the same as the category of set-valued sheaves.
 -/
 @[simps]
@@ -387,6 +489,12 @@ instance : Inhabited (Sheaf (⊥ : GrothendieckTopology C) (Type w)) :=
 
 variable {J} {A}
 
+/- warning: category_theory.Sheaf.is_terminal_of_bot_cover -> CategoryTheory.Sheaf.isTerminalOfBotCover is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1} {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (F : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (X : C), (Membership.Mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.hasMem.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Bot.bot.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (CompleteLattice.toHasBot.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.completeLattice.{u1, u3} C _inst_1 X))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ (max u3 u1))} (CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) (fun (_x : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1) => forall (X : C), Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u1, u3} C _inst_1) J X)) -> (CategoryTheory.Limits.IsTerminal.{u2, u4} A _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 F) (Opposite.op.{succ u3} C X)))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1} {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] (F : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (X : C), (Membership.mem.{max u3 u1, max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (Set.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Set.instMembershipSet.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X)) (Bot.bot.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (CompleteLattice.toBot.{max u3 u1} (CategoryTheory.Sieve.{u1, u3} C _inst_1 X) (CategoryTheory.Sieve.instCompleteLatticeSieve.{u1, u3} C _inst_1 X))) (CategoryTheory.GrothendieckTopology.sieves.{u1, u3} C _inst_1 J X)) -> (CategoryTheory.Limits.IsTerminal.{u2, u4} A _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 F)) (Opposite.op.{succ u3} C X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.is_terminal_of_bot_cover CategoryTheory.Sheaf.isTerminalOfBotCoverₓ'. -/
 /-- If the empty sieve is a cover of `X`, then `F(X)` is terminal. -/
 def Sheaf.isTerminalOfBotCover (F : Sheaf J A) (X : C) (H : ⊥ ∈ J X) :
     IsTerminal (F.1.obj (op X)) :=
@@ -403,6 +511,7 @@ open Preadditive
 
 variable [Preadditive A] {P Q : Sheaf J A}
 
+#print CategoryTheory.sheafHomHasZsmul /-
 instance sheafHomHasZsmul : SMul ℤ (P ⟶ Q)
     where smul n f :=
     Sheaf.Hom.mk
@@ -418,11 +527,13 @@ instance sheafHomHasZsmul : SMul ℤ (P ⟶ Q)
             simpa only [sub_smul, one_zsmul, comp_sub, nat_trans.naturality, sub_comp,
               sub_left_inj] using ih }
 #align category_theory.Sheaf_hom_has_zsmul CategoryTheory.sheafHomHasZsmul
+-/
 
 instance : Sub (P ⟶ Q) where sub f g := Sheaf.Hom.mk <| f.1 - g.1
 
 instance : Neg (P ⟶ Q) where neg f := Sheaf.Hom.mk <| -f.1
 
+#print CategoryTheory.sheafHomHasNsmul /-
 instance sheafHomHasNsmul : SMul ℕ (P ⟶ Q)
     where smul n f :=
     Sheaf.Hom.mk
@@ -434,11 +545,18 @@ instance sheafHomHasNsmul : SMul ℕ (P ⟶ Q)
             simp only [Nat.succ_eq_add_one, add_smul, ih, one_nsmul, comp_add, nat_trans.naturality,
               add_comp] }
 #align category_theory.Sheaf_hom_has_nsmul CategoryTheory.sheafHomHasNsmul
+-/
 
 instance : Zero (P ⟶ Q) where zero := Sheaf.Hom.mk 0
 
 instance : Add (P ⟶ Q) where add f g := Sheaf.Hom.mk <| f.1 + g.1
 
+/- warning: category_theory.Sheaf.hom.add_app -> CategoryTheory.Sheaf.Hom.add_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1} {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] [_inst_3 : CategoryTheory.Preadditive.{u2, u4} A _inst_2] {P : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2} {Q : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2} (f : Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (g : Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (U : Opposite.{succ u3} C), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (instHAdd.{max u3 u2} (Quiver.Hom.{succ (max u3 u2), max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u4 u1 u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (CategoryTheory.Quiver.Hom.hasAdd.{u1, u2, u3, u4} C _inst_1 J A _inst_2 _inst_3 P Q)) f g)) U) (HAdd.hAdd.{u2, u2, u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (instHAdd.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (AddZeroClass.toHasAdd.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)) (CategoryTheory.Preadditive.homGroup.{u2, u4} A _inst_2 _inst_3 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) U) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) U)))))))) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q f) U) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q g) U))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {J : CategoryTheory.GrothendieckTopology.{u1, u3} C _inst_1} {A : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} A] [_inst_3 : CategoryTheory.Preadditive.{u2, u4} A _inst_2] {P : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2} {Q : CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2} (f : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (g : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (U : Opposite.{succ u3} C), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (instHAdd.{max u3 u2} (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Sheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2))) P Q) (CategoryTheory.instAddHomSheafToQuiverToCategoryStructInstCategorySheaf.{u1, u2, u3, u4} C _inst_1 J A _inst_2 _inst_3 P Q)) f g)) U) (HAdd.hAdd.{u2, u2, u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (instHAdd.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (AddZeroClass.toAdd.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u4} A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)) (CategoryTheory.Preadditive.homGroup.{u2, u4} A _inst_2 _inst_3 (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P)) U) (Prefunctor.obj.{succ u1, succ u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u1, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} A (CategoryTheory.Category.toCategoryStruct.{u2, u4} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q)) U)))))))) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q f) U) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u1, u3} C _inst_1) A _inst_2 (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P) (CategoryTheory.Sheaf.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 Q) (CategoryTheory.Sheaf.Hom.val.{u1, u2, u3, u4} C _inst_1 J A _inst_2 P Q g) U))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.hom.add_app CategoryTheory.Sheaf.Hom.add_appₓ'. -/
 @[simp]
 theorem Sheaf.Hom.add_app (f g : P ⟶ Q) (U) : (f + g).1.app U = f.1.app U + g.1.app U :=
   rfl
@@ -491,6 +609,7 @@ variable (P : Cᵒᵖ ⥤ A)
 
 section MultiequalizerConditions
 
+#print CategoryTheory.Presheaf.isLimitOfIsSheaf /-
 /-- When `P` is a sheaf and `S` is a cover, the associated multifork is a limit. -/
 def isLimitOfIsSheaf {X : C} (S : J.cover X) (hP : IsSheaf J P) : IsLimit (S.Multifork P)
     where
@@ -510,7 +629,9 @@ def isLimitOfIsSheaf {X : C} (S : J.cover X) (hP : IsSheaf J P) : IsLimit (S.Mul
     symm
     apply hP.amalgamate_map
 #align category_theory.presheaf.is_limit_of_is_sheaf CategoryTheory.Presheaf.isLimitOfIsSheaf
+-/
 
+#print CategoryTheory.Presheaf.isSheaf_iff_multifork /-
 theorem isSheaf_iff_multifork :
     IsSheaf J P ↔ ∀ (X : C) (S : J.cover X), Nonempty (IsLimit (S.Multifork P)) :=
   by
@@ -532,7 +653,14 @@ theorem isSheaf_iff_multifork :
       congr 1
       apply he
 #align category_theory.presheaf.is_sheaf_iff_multifork CategoryTheory.Presheaf.isSheaf_iff_multifork
+-/
 
+/- warning: category_theory.presheaf.is_sheaf_iff_multiequalizer -> CategoryTheory.Presheaf.isSheaf_iff_multiequalizer is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] (J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1) (P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u1 u2, u3, max u2 u1} A _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u3, u1, u2} C _inst_1 X J A _inst_2 S P)], Iff (CategoryTheory.Presheaf.IsSheaf.{u1, max u1 u2, u2, u3} C _inst_1 A _inst_2 J P) (forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X), CategoryTheory.IsIso.{max u1 u2, u3} A _inst_2 (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C X)) (CategoryTheory.Limits.multiequalizer.{max u1 u2, u3, max u2 u1} A _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u3, u1, u2} C _inst_1 X J A _inst_2 S P) (_inst_3 X S)) (CategoryTheory.GrothendieckTopology.Cover.toMultiequalizer.{u3, u1, u2} C _inst_1 X J A _inst_2 S P (_inst_3 X S)))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] (J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1) (P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u1, u3, max u2 u1} A _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u3, u1, u2} C _inst_1 X J A _inst_2 S P)], Iff (CategoryTheory.Presheaf.IsSheaf.{u1, max u2 u1, u2, u3} C _inst_1 A _inst_2 J P) (forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u1, u2} C _inst_1 J X), CategoryTheory.IsIso.{max u2 u1, u3} A _inst_2 (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C X)) (CategoryTheory.Limits.multiequalizer.{max u2 u1, u3, max u2 u1} A _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u3, u1, u2} C _inst_1 X J A _inst_2 S P) (_inst_3 X S)) (CategoryTheory.GrothendieckTopology.Cover.toMultiequalizer.{u3, u1, u2} C _inst_1 X J A _inst_2 S P (_inst_3 X S)))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.is_sheaf_iff_multiequalizer CategoryTheory.Presheaf.isSheaf_iff_multiequalizerₓ'. -/
 theorem isSheaf_iff_multiequalizer [∀ (X : C) (S : J.cover X), HasMultiequalizer (S.index P)] :
     IsSheaf J P ↔ ∀ (X : C) (S : J.cover X), IsIso (S.toMultiequalizer P) :=
   by
@@ -558,6 +686,7 @@ section
 
 variable [HasProducts.{max u₁ v₁} A]
 
+#print CategoryTheory.Presheaf.firstObj /-
 /--
 The middle object of the fork diagram given in Equation (3) of [MM92], as well as the fork diagram
 of <https://stacks.math.columbia.edu/tag/00VM>.
@@ -565,7 +694,14 @@ of <https://stacks.math.columbia.edu/tag/00VM>.
 def firstObj : A :=
   ∏ fun f : ΣV, { f : V ⟶ U // R f } => P.obj (op f.1)
 #align category_theory.presheaf.first_obj CategoryTheory.Presheaf.firstObj
+-/
 
+/- warning: category_theory.presheaf.fork_map -> CategoryTheory.Presheaf.forkMap is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] {U : C} (R : CategoryTheory.Presieve.{u1, u2} C _inst_1 U) (P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasProducts.{max u2 u1, max u1 u2, u3} A _inst_2], Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_2)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.forkMap._proof_1.{u2, u3, u1} A _inst_2 _inst_3))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] {U : C} (R : CategoryTheory.Presieve.{u1, u2} C _inst_1 U) (P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasProducts.{max u2 u1, max u2 u1, u3} A _inst_2], Quiver.Hom.{max (succ u2) (succ u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.fork_map CategoryTheory.Presheaf.forkMapₓ'. -/
 /--
 The left morphism of the fork diagram given in Equation (3) of [MM92], as well as the fork diagram
 of <https://stacks.math.columbia.edu/tag/00VM>.
@@ -576,6 +712,7 @@ def forkMap : P.obj (op U) ⟶ firstObj R P :=
 
 variable [HasPullbacks C]
 
+#print CategoryTheory.Presheaf.secondObj /-
 /-- The rightmost object of the fork diagram of https://stacks.math.columbia.edu/tag/00VM, which
 contains the data used to check a family of elements for a presieve is compatible.
 -/
@@ -583,17 +720,28 @@ def secondObj : A :=
   ∏ fun fg : (ΣV, { f : V ⟶ U // R f }) × ΣW, { g : W ⟶ U // R g } =>
     P.obj (op (pullback fg.1.2.1 fg.2.2.1))
 #align category_theory.presheaf.second_obj CategoryTheory.Presheaf.secondObj
+-/
 
+#print CategoryTheory.Presheaf.firstMap /-
 /-- The map `pr₀*` of <https://stacks.math.columbia.edu/tag/00VM>. -/
 def firstMap : firstObj R P ⟶ secondObj R P :=
   Pi.lift fun fg => Pi.π _ _ ≫ P.map pullback.fst.op
 #align category_theory.presheaf.first_map CategoryTheory.Presheaf.firstMap
+-/
 
+#print CategoryTheory.Presheaf.secondMap /-
 /-- The map `pr₁*` of <https://stacks.math.columbia.edu/tag/00VM>. -/
 def secondMap : firstObj R P ⟶ secondObj R P :=
   Pi.lift fun fg => Pi.π _ _ ≫ P.map pullback.snd.op
 #align category_theory.presheaf.second_map CategoryTheory.Presheaf.secondMap
+-/
 
+/- warning: category_theory.presheaf.w -> CategoryTheory.Presheaf.w is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] {U : C} (R : CategoryTheory.Presieve.{u1, u2} C _inst_1 U) (P : CategoryTheory.Functor.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasProducts.{max u2 u1, max u1 u2, u3} A _inst_2] [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], Eq.{succ (max u1 u2)} (Quiver.Hom.{succ (max u1 u2), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_2)) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.firstMap._proof_2.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J)) _inst_4)) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_2) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.forkMap._proof_1.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J))) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.firstMap._proof_2.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J)) _inst_4) (CategoryTheory.Presheaf.forkMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.firstMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4)) (CategoryTheory.CategoryStruct.comp.{max u1 u2, u3} A (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u3} A _inst_2) (CategoryTheory.Functor.obj.{u1, max u1 u2, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.forkMap._proof_1.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J))) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (CategoryTheory.Presheaf.firstMap._proof_2.{u2, u3, u1} A _inst_2 (fun (J : Type.{max u2 u1}) => _inst_3 J)) _inst_4) (CategoryTheory.Presheaf.forkMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.secondMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : Type.{u3}} [_inst_2 : CategoryTheory.Category.{max u1 u2, u3} A] {U : C} (R : CategoryTheory.Presieve.{u1, u2} C _inst_1 U) (P : CategoryTheory.Functor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2) [_inst_3 : CategoryTheory.Limits.HasProducts.{max u2 u1, max u2 u1, u3} A _inst_2] [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], Eq.{max (succ u2) (succ u1)} (Quiver.Hom.{succ (max u2 u1), u3} A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4)) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4) (CategoryTheory.Presheaf.forkMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.firstMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4)) (CategoryTheory.CategoryStruct.comp.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u3} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) A (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u3} A (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u3} A _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u3} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) A _inst_2 P) (Opposite.op.{succ u2} C U)) (CategoryTheory.Presheaf.firstObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.secondObj.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4) (CategoryTheory.Presheaf.forkMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J)) (CategoryTheory.Presheaf.secondMap.{u1, u2, u3} C _inst_1 A _inst_2 U R P (fun (J : Type.{max u2 u1}) => _inst_3 J) _inst_4))
+Case conversion may be inaccurate. Consider using '#align category_theory.presheaf.w CategoryTheory.Presheaf.wₓ'. -/
 theorem w : forkMap R P ≫ firstMap R P = forkMap R P ≫ secondMap R P :=
   by
   apply limit.hom_ext
@@ -604,13 +752,16 @@ theorem w : forkMap R P ≫ firstMap R P = forkMap R P ≫ secondMap R P :=
   simp
 #align category_theory.presheaf.w CategoryTheory.Presheaf.w
 
+#print CategoryTheory.Presheaf.IsSheaf' /-
 /-- An alternative definition of the sheaf condition in terms of equalizers. This is shown to be
 equivalent in `category_theory.presheaf.is_sheaf_iff_is_sheaf'`.
 -/
 def IsSheaf' (P : Cᵒᵖ ⥤ A) : Prop :=
   ∀ (U : C) (R : Presieve U) (hR : generate R ∈ J U), Nonempty (IsLimit (Fork.ofι _ (w R P)))
 #align category_theory.presheaf.is_sheaf' CategoryTheory.Presheaf.IsSheaf'
+-/
 
+#print CategoryTheory.Presheaf.isSheafForIsSheafFor' /-
 /-- (Implementation). An auxiliary lemma to convert between sheaf conditions. -/
 def isSheafForIsSheafFor' (P : Cᵒᵖ ⥤ A) (s : A ⥤ Type max v₁ u₁)
     [∀ J, PreservesLimitsOfShape (Discrete.{max v₁ u₁} J) s] (U : C) (R : Presieve U) :
@@ -638,7 +789,9 @@ def isSheafForIsSheafFor' (P : Cᵒᵖ ⥤ A) (s : A ⥤ Type max v₁ u₁)
     dsimp [equalizer.fork_map, fork_map]
     simp [fork.ι]
 #align category_theory.presheaf.is_sheaf_for_is_sheaf_for' CategoryTheory.Presheaf.isSheafForIsSheafFor'
+-/
 
+#print CategoryTheory.Presheaf.isSheaf_iff_isSheaf' /-
 /-- The equalizer definition of a sheaf given by `is_sheaf'` is equivalent to `is_sheaf`. -/
 theorem isSheaf_iff_isSheaf' : IsSheaf J P ↔ IsSheaf' J P :=
   by
@@ -661,6 +814,7 @@ theorem isSheaf_iff_isSheaf' : IsSheaf J P ↔ IsSheaf' J P :=
     apply Classical.choice (h _ S _)
     simpa
 #align category_theory.presheaf.is_sheaf_iff_is_sheaf' CategoryTheory.Presheaf.isSheaf_iff_isSheaf'
+-/
 
 end
 
@@ -668,6 +822,7 @@ section Concrete
 
 variable [HasPullbacks C]
 
+#print CategoryTheory.Presheaf.isSheaf_iff_isSheaf_forget /-
 /--
 For a concrete category `(A, s)` where the forgetful functor `s : A ⥤ Type v` preserves limits and
 reflects isomorphisms, and `A` has limits, an `A`-valued presheaf `P : Cᵒᵖ ⥤ A` is a sheaf iff its
@@ -693,6 +848,7 @@ theorem isSheaf_iff_isSheaf_forget (s : A ⥤ Type max v₁ u₁) [HasLimits A]
   · haveI := reflects_smallest_limits_of_reflects_limits s
     exact Nonempty.map fun t => is_limit_of_reflects s t
 #align category_theory.presheaf.is_sheaf_iff_is_sheaf_forget CategoryTheory.Presheaf.isSheaf_iff_isSheaf_forget
+-/
 
 end Concrete
 
Diff
@@ -459,10 +459,10 @@ instance : AddCommGroup (P ⟶ Q) :=
 instance : Preadditive (Sheaf J A)
     where
   homGroup P Q := inferInstance
-  add_comp' P Q R f f' g := by
+  add_comp P Q R f f' g := by
     ext
     simp
-  comp_add' P Q R f g g' := by
+  comp_add P Q R f g g' := by
     ext
     simp
 
Diff
@@ -118,7 +118,7 @@ variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S} (hx : x.SieveCo
 @[simp]
 def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone : Cone (S.arrows.diagram.op ⋙ P)
     where
-  x := E.unop
+  pt := E.unop
   π := (conesEquivSieveCompatibleFamily P S E).invFun ⟨x, hx⟩
 #align category_theory.presieve.family_of_elements.sieve_compatible.cone CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone
 
Diff
@@ -495,14 +495,14 @@ section MultiequalizerConditions
 def isLimitOfIsSheaf {X : C} (S : J.cover X) (hP : IsSheaf J P) : IsLimit (S.Multifork P)
     where
   lift := fun E : Multifork _ => hP.amalgamate S (fun I => E.ι _) fun I => E.condition _
-  fac' := by
+  fac := by
     rintro (E : multifork _) (a | b)
     · apply hP.amalgamate_map
     · rw [← E.w (walking_multicospan.hom.fst b), ←
         (S.multifork P).w (walking_multicospan.hom.fst b), ← assoc]
       congr 1
       apply hP.amalgamate_map
-  uniq' := by
+  uniq := by
     rintro (E : multifork _) m hm
     apply hP.hom_ext S
     intro I

Changes in mathlib4

mathlib3
mathlib4
chore(CategoryTheory): make Functor.Full a Prop (#12449)

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

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

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

Diff
@@ -312,6 +312,14 @@ instance (X : Sheaf J A) : Inhabited (Hom X X) :=
 lemma hom_ext {X Y : Sheaf J A} (x y : X ⟶ Y) (h : x.val = y.val) : x = y :=
   Sheaf.Hom.ext _ _ h
 
+/-- The bijection `(X ⟶ Y) ≃ (X.val ⟶ Y.val)` when `X` and `Y` are sheaves. -/
+@[simps]
+def homEquiv {X Y : Sheaf J A} : (X ⟶ Y) ≃ (X.val ⟶ Y.val) where
+  toFun f := f.val
+  invFun f := ⟨f⟩
+  left_inv _ := rfl
+  right_inv _ := rfl
+
 end Sheaf
 
 /-- The inclusion functor from sheaves to presheaves. -/
@@ -327,7 +335,7 @@ set_option linter.uppercaseLean3 false in
 /-- The sections of a sheaf (i.e. evaluation as a presheaf on `C`). -/
 abbrev sheafSections : Cᵒᵖ ⥤ Sheaf J A ⥤ A := (sheafToPresheaf J A).flip
 
-instance : (sheafToPresheaf J A).Full where preimage f := ⟨f⟩
+instance : (sheafToPresheaf J A).Full where map_surjective f := ⟨⟨f⟩, rfl⟩
 
 instance : (sheafToPresheaf J A).Faithful where
 
chore: replace refine' that already have a ?_ (#12261)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -394,7 +394,7 @@ variable {J} {A}
 /-- If the empty sieve is a cover of `X`, then `F(X)` is terminal. -/
 def Sheaf.isTerminalOfBotCover (F : Sheaf J A) (X : C) (H : ⊥ ∈ J X) :
     IsTerminal (F.1.obj (op X)) := by
-  refine' @IsTerminal.ofUnique _ _ _ ?_
+  refine @IsTerminal.ofUnique _ _ _ ?_
   intro Y
   choose t h using F.2 Y _ H (by tauto) (by tauto)
   exact ⟨⟨t⟩, fun a => h.2 a (by tauto)⟩
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

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

Diff
@@ -327,9 +327,9 @@ set_option linter.uppercaseLean3 false in
 /-- The sections of a sheaf (i.e. evaluation as a presheaf on `C`). -/
 abbrev sheafSections : Cᵒᵖ ⥤ Sheaf J A ⥤ A := (sheafToPresheaf J A).flip
 
-instance : Full (sheafToPresheaf J A) where preimage f := ⟨f⟩
+instance : (sheafToPresheaf J A).Full where preimage f := ⟨f⟩
 
-instance : Faithful (sheafToPresheaf J A) where
+instance : (sheafToPresheaf J A).Faithful where
 
 /-- This is stated as a lemma to prevent class search from forming a loop since a sheaf morphism is
 monic if and only if it is monic as a presheaf morphism (under suitable assumption). -/
@@ -670,7 +670,7 @@ theorem isSheaf_comp_of_isSheaf (s : A ⥤ B) [PreservesLimitsOfSize.{v₁, max
   apply fun X S hS ↦ (h S hS).map fun t ↦ isLimitOfPreserves s t
 
 theorem isSheaf_iff_isSheaf_comp (s : A ⥤ B) [HasLimitsOfSize.{v₁, max v₁ u₁} A]
-    [PreservesLimitsOfSize.{v₁, max v₁ u₁} s] [ReflectsIsomorphisms s] :
+    [PreservesLimitsOfSize.{v₁, max v₁ u₁} s] [s.ReflectsIsomorphisms] :
     IsSheaf J P ↔ IsSheaf J (P ⋙ s) := by
   letI : ReflectsLimitsOfSize s := reflectsLimitsOfReflectsIsomorphisms
   exact ⟨isSheaf_comp_of_isSheaf J P s, isSheaf_of_isSheaf_comp J P s⟩
@@ -685,7 +685,7 @@ for the category of topological spaces, topological rings, etc since reflecting
 hold.
 -/
 theorem isSheaf_iff_isSheaf_forget (s : A' ⥤ Type max v₁ u₁) [HasLimits A'] [PreservesLimits s]
-    [ReflectsIsomorphisms s] : IsSheaf J P' ↔ IsSheaf J (P' ⋙ s) := by
+    [s.ReflectsIsomorphisms] : IsSheaf J P' ↔ IsSheaf J (P' ⋙ s) := by
   have : HasLimitsOfSize.{v₁, max v₁ u₁} A' := hasLimitsOfSizeShrink.{_, _, u₁, 0} A'
   have : PreservesLimitsOfSize.{v₁, max v₁ u₁} s := preservesLimitsOfSizeShrink.{_, 0, _, u₁} s
   apply isSheaf_iff_isSheaf_comp
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -332,7 +332,7 @@ instance : Full (sheafToPresheaf J A) where preimage f := ⟨f⟩
 instance : Faithful (sheafToPresheaf J A) where
 
 /-- This is stated as a lemma to prevent class search from forming a loop since a sheaf morphism is
-monic if and only if it is monic as a presheaf morphism (under suitable assumption).-/
+monic if and only if it is monic as a presheaf morphism (under suitable assumption). -/
 theorem Sheaf.Hom.mono_of_presheaf_mono {F G : Sheaf J A} (f : F ⟶ G) [h : Mono f.1] : Mono f :=
   (sheafToPresheaf J A).mono_of_mono_map h
 set_option linter.uppercaseLean3 false in
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -64,9 +64,7 @@ open Opposite CategoryTheory Category Limits Sieve
 namespace Presheaf
 
 variable {C : Type u₁} [Category.{v₁} C]
-
 variable {A : Type u₂} [Category.{v₂} A]
-
 variable (J : GrothendieckTopology C)
 
 -- We follow https://stacks.math.columbia.edu/tag/00VL definition 00VR
@@ -272,9 +270,7 @@ theorem isSheaf_of_isTerminal {X : A} (hX : IsTerminal X) :
 end Presheaf
 
 variable {C : Type u₁} [Category.{v₁} C]
-
 variable (J : GrothendieckTopology C)
-
 variable (A : Type u₂) [Category.{v₂} A]
 
 /-- The category of sheaves taking values in `A` on a grothendieck topology. -/
@@ -483,11 +479,8 @@ variable {C : Type u₁} [Category.{v₁} C]
 variable {A : Type u₂} [Category.{v₂} A]
 variable {A' : Type u₂} [Category.{max v₁ u₁} A']
 variable {B : Type u₃} [Category.{v₃} B]
-
 variable (J : GrothendieckTopology C)
-
 variable {U : C} (R : Presieve U)
-
 variable (P : Cᵒᵖ ⥤ A) (P' : Cᵒᵖ ⥤ A')
 
 section MultiequalizerConditions
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -311,7 +311,7 @@ instance instCategorySheaf : Category (Sheaf J A) where
 instance (X : Sheaf J A) : Inhabited (Hom X X) :=
   ⟨𝟙 X⟩
 
--- porting note: added because `Sheaf.Hom.ext` was not triggered automatically
+-- Porting note: added because `Sheaf.Hom.ext` was not triggered automatically
 @[ext]
 lemma hom_ext {X Y : Sheaf J A} (x y : X ⟶ Y) (h : x.val = y.val) : x = y :=
   Sheaf.Hom.ext _ _ h
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -359,7 +359,7 @@ theorem isSheaf_iff_isSheaf_of_type (P : Cᵒᵖ ⥤ Type w) :
   constructor
   · intro hP
     refine' Presieve.isSheaf_iso J _ (hP PUnit)
-    refine' isoWhiskerLeft _ Coyoneda.punitIso ≪≫ P.rightUnitor
+    exact isoWhiskerLeft _ Coyoneda.punitIso ≪≫ P.rightUnitor
   · intro hP X Y S hS z hz
     refine' ⟨fun x => (hP S hS).amalgamate (fun Z f hf => z f hf x) _, _, _⟩
     · intro Y₁ Y₂ Z g₁ g₂ f₁ f₂ hf₁ hf₂ h
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -411,7 +411,7 @@ open Preadditive
 
 variable [Preadditive A] {P Q : Sheaf J A}
 
-instance sheafHomHasZsmul : SMul ℤ (P ⟶ Q) where
+instance sheafHomHasZSMul : SMul ℤ (P ⟶ Q) where
   smul n f :=
     Sheaf.Hom.mk
       { app := fun U => n • f.1.app U
@@ -423,13 +423,13 @@ instance sheafHomHasZsmul : SMul ℤ (P ⟶ Q) where
           · simpa only [sub_smul, one_zsmul, comp_sub, NatTrans.naturality, sub_comp,
               sub_left_inj] using ih }
 set_option linter.uppercaseLean3 false in
-#align category_theory.Sheaf_hom_has_zsmul CategoryTheory.sheafHomHasZsmul
+#align category_theory.Sheaf_hom_has_zsmul CategoryTheory.sheafHomHasZSMul
 
 instance : Sub (P ⟶ Q) where sub f g := Sheaf.Hom.mk <| f.1 - g.1
 
 instance : Neg (P ⟶ Q) where neg f := Sheaf.Hom.mk <| -f.1
 
-instance sheafHomHasNsmul : SMul ℕ (P ⟶ Q) where
+instance sheafHomHasNSMul : SMul ℕ (P ⟶ Q) where
   smul n f :=
     Sheaf.Hom.mk
       { app := fun U => n • f.1.app U
@@ -439,7 +439,7 @@ instance sheafHomHasNsmul : SMul ℕ (P ⟶ Q) where
           · simp only [Nat.succ_eq_add_one, add_smul, ih, one_nsmul, comp_add,
               NatTrans.naturality, add_comp] }
 set_option linter.uppercaseLean3 false in
-#align category_theory.Sheaf_hom_has_nsmul CategoryTheory.sheafHomHasNsmul
+#align category_theory.Sheaf_hom_has_nsmul CategoryTheory.sheafHomHasNSMul
 
 instance : Zero (P ⟶ Q) where zero := Sheaf.Hom.mk 0
 
feat(Condensed): discrete-underlying adjunction (#8270)

We define a functor, associating to an object of a concrete category with nice properties, a "discrete" condensed object, and prove that this functor is left adjoint to the forgetful functor from Condensed C to C.

Diff
@@ -328,6 +328,9 @@ def sheafToPresheaf : Sheaf J A ⥤ Cᵒᵖ ⥤ A where
 set_option linter.uppercaseLean3 false in
 #align category_theory.Sheaf_to_presheaf CategoryTheory.sheafToPresheaf
 
+/-- The sections of a sheaf (i.e. evaluation as a presheaf on `C`). -/
+abbrev sheafSections : Cᵒᵖ ⥤ Sheaf J A ⥤ A := (sheafToPresheaf J A).flip
+
 instance : Full (sheafToPresheaf J A) where preimage f := ⟨f⟩
 
 instance : Faithful (sheafToPresheaf J A) where
chore: split `CategoryTheory/Sites/SheafOfTypes (#7854)

I was planning to add some stuff to this file which was already over 1000 lines long.

  • The explicit sheaf condition for a sieve/presieve IsSheafFor is now in CategoryTheory/Sites/IsSheafFor.
  • The sheaf condition for a sieve/presieve in terms of equalizer diagrams is now in CategoryTheory/Sites/EqualizerSheafCondition
  • Only things related to IsSheaf/IsSeparated are left in the file CategoryTheory/Sites/SheafOfTypes.
Diff
@@ -8,6 +8,7 @@ import Mathlib.CategoryTheory.Limits.Preserves.Shapes.Products
 import Mathlib.CategoryTheory.Limits.Yoneda
 import Mathlib.CategoryTheory.Preadditive.FunctorCategory
 import Mathlib.CategoryTheory.Sites.SheafOfTypes
+import Mathlib.CategoryTheory.Sites.EqualizerSheafCondition
 
 #align_import category_theory.sites.sheaf from "leanprover-community/mathlib"@"2efd2423f8d25fa57cf7a179f5d8652ab4d0df44"
 
feat: universe generalizations in UniqueGluing and Forget (#7654)
  • Add a criterion isLimit_iff for a cone to be a limit in Limits/Types.lean.

  • Use the criterion to show the equivalence between the UniqueGluing and PairwiseIntersection sheaf conditions without going through EqualizerProducts, thereby generalize the universes.

  • Remove theorems/def that are now unnecessary. (cc @justus-springer)

  • Generalize isSheaf_iff_isSheaf_forget for sheaves on sites using isSheaf_iff_isLimit; use it to prove and generalize the result on topological spaces, removing a large chunk of code.

Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -26,6 +26,8 @@ and `A` live in the same universe.
   are all sheaves of sets, see `CategoryTheory.Presheaf.IsSheaf`.
 * When `A = Type`, this recovers the basic definition of sheaves of sets, see
   `CategoryTheory.isSheaf_iff_isSheaf_of_type`.
+* A alternate definition in terms of limits, unconditionally equivalent to the original one:
+  see `CategoryTheory.Presheaf.isSheaf_iff_isLimit`.
 * An alternate definition when `C` is small, has pullbacks and `A` has products is given by an
   equalizer condition `CategoryTheory.Presheaf.IsSheaf'`. This is equivalent to the earlier
   definition, shown in `CategoryTheory.Presheaf.isSheaf_iff_isSheaf'`.
@@ -50,7 +52,7 @@ inequalities this can be changed.
 -/
 
 
-universe w v₁ v₂ u₁ u₂
+universe w v₁ v₂ v₃ u₁ u₂ u₃
 
 noncomputable section
 
@@ -476,6 +478,7 @@ variable {C : Type u₁} [Category.{v₁} C]
 -- instead.
 variable {A : Type u₂} [Category.{v₂} A]
 variable {A' : Type u₂} [Category.{max v₁ u₁} A']
+variable {B : Type u₃} [Category.{v₃} B]
 
 variable (J : GrothendieckTopology C)
 
@@ -631,8 +634,8 @@ def isSheafForIsSheafFor' (P : Cᵒᵖ ⥤ A) (s : A ⥤ Type max v₁ u₁)
     simp [Fork.ι]
 #align category_theory.presheaf.is_sheaf_for_is_sheaf_for' CategoryTheory.Presheaf.isSheafForIsSheafFor'
 
--- Remark : this lemma and the next use `A'` not `A`; `A'` is `A` but with a universe
--- restriction. Can they be generalised?
+-- Remark : this lemma uses `A'` not `A`; `A'` is `A` but with a universe
+-- restriction. Can it be generalised?
 /-- The equalizer definition of a sheaf given by `isSheaf'` is equivalent to `isSheaf`. -/
 theorem isSheaf_iff_isSheaf' : IsSheaf J P' ↔ IsSheaf' J P' := by
   constructor
@@ -659,7 +662,21 @@ end
 
 section Concrete
 
-variable [HasPullbacks C]
+theorem isSheaf_of_isSheaf_comp (s : A ⥤ B) [ReflectsLimitsOfSize.{v₁, max v₁ u₁} s]
+    (h : IsSheaf J (P ⋙ s)) : IsSheaf J P := by
+  rw [isSheaf_iff_isLimit] at h ⊢
+  exact fun X S hS ↦ (h S hS).map fun t ↦ isLimitOfReflects s t
+
+theorem isSheaf_comp_of_isSheaf (s : A ⥤ B) [PreservesLimitsOfSize.{v₁, max v₁ u₁} s]
+    (h : IsSheaf J P) : IsSheaf J (P ⋙ s) := by
+  rw [isSheaf_iff_isLimit] at h ⊢
+  apply fun X S hS ↦ (h S hS).map fun t ↦ isLimitOfPreserves s t
+
+theorem isSheaf_iff_isSheaf_comp (s : A ⥤ B) [HasLimitsOfSize.{v₁, max v₁ u₁} A]
+    [PreservesLimitsOfSize.{v₁, max v₁ u₁} s] [ReflectsIsomorphisms s] :
+    IsSheaf J P ↔ IsSheaf J (P ⋙ s) := by
+  letI : ReflectsLimitsOfSize s := reflectsLimitsOfReflectsIsomorphisms
+  exact ⟨isSheaf_comp_of_isSheaf J P s, isSheaf_of_isSheaf_comp J P s⟩
 
 /--
 For a concrete category `(A, s)` where the forgetful functor `s : A ⥤ Type v` preserves limits and
@@ -672,17 +689,9 @@ hold.
 -/
 theorem isSheaf_iff_isSheaf_forget (s : A' ⥤ Type max v₁ u₁) [HasLimits A'] [PreservesLimits s]
     [ReflectsIsomorphisms s] : IsSheaf J P' ↔ IsSheaf J (P' ⋙ s) := by
-  rw [isSheaf_iff_isSheaf', isSheaf_iff_isSheaf']
-  refine' forall_congr' (fun U => ball_congr (fun R _ => _))
-  letI : ReflectsLimits s := reflectsLimitsOfReflectsIsomorphisms
-  have : IsLimit (s.mapCone (Fork.ofι _ (w R P'))) ≃ IsLimit (Fork.ofι _ (w R (P' ⋙ s))) :=
-    isSheafForIsSheafFor' P' s U R
-  rw [← Equiv.nonempty_congr this]
-  constructor
-  · haveI := preservesSmallestLimitsOfPreservesLimits s
-    exact Nonempty.map fun t => isLimitOfPreserves s t
-  · haveI := reflectsSmallestLimitsOfReflectsLimits s
-    exact Nonempty.map fun t => isLimitOfReflects s t
+  have : HasLimitsOfSize.{v₁, max v₁ u₁} A' := hasLimitsOfSizeShrink.{_, _, u₁, 0} A'
+  have : PreservesLimitsOfSize.{v₁, max v₁ u₁} s := preservesLimitsOfSizeShrink.{_, 0, _, u₁} s
+  apply isSheaf_iff_isSheaf_comp
 #align category_theory.presheaf.is_sheaf_iff_is_sheaf_forget CategoryTheory.Presheaf.isSheaf_iff_isSheaf_forget
 
 end Concrete
Revert "chore: revert #7703 (#7710)"

This reverts commit f3695eb2.

Diff
@@ -107,6 +107,10 @@ def conesEquivSieveCompatibleFamily :
   right_inv x := rfl
 #align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily
 
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF] CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily_apply_coe
+  CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily_symm_apply_app
+
 variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S.arrows} (hx : SieveCompatible x)
 
 /-- The cone corresponding to a sieve_compatible family of elements, dot notation enabled. -/
chore: revert #7703 (#7710)

This reverts commit 26eb2b0a.

Diff
@@ -107,10 +107,6 @@ def conesEquivSieveCompatibleFamily :
   right_inv x := rfl
 #align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily
 
--- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
-attribute [nolint simpNF] CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily_apply_coe
-  CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily_symm_apply_app
-
 variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S.arrows} (hx : SieveCompatible x)
 
 /-- The cone corresponding to a sieve_compatible family of elements, dot notation enabled. -/
chore: bump toolchain to v4.2.0-rc2 (#7703)

This includes all the changes from #7606.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -107,6 +107,10 @@ def conesEquivSieveCompatibleFamily :
   right_inv x := rfl
 #align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily
 
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF] CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily_apply_coe
+  CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily_symm_apply_app
+
 variable {P S E} {x : FamilyOfElements (P ⋙ coyoneda.obj E) S.arrows} (hx : SieveCompatible x)
 
 /-- The cone corresponding to a sieve_compatible family of elements, dot notation enabled. -/
chore: replace ConeMorphism.Hom by ConeMorphism.hom (#7176)
Diff
@@ -122,7 +122,7 @@ def _root_.CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone :
     of the family. -/
 def homEquivAmalgamation : (hx.cone ⟶ P.mapCone S.arrows.cocone.op) ≃ { t // x.IsAmalgamation t }
     where
-  toFun l := ⟨l.Hom, fun _ f hf => l.w (op ⟨Over.mk f, hf⟩)⟩
+  toFun l := ⟨l.hom, fun _ f hf => l.w (op ⟨Over.mk f, hf⟩)⟩
   invFun t := ⟨t.1, fun f => t.2 f.unop.1.hom f.unop.2⟩
   left_inv _ := rfl
   right_inv _ := rfl
chore: remove unused simps (#6632)

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

Diff
@@ -615,12 +615,11 @@ def isSheafForIsSheafFor' (P : Cᵒᵖ ⥤ A) (s : A ⥤ Type max v₁ u₁)
       · refine' limit.hom_ext (fun j => _)
         dsimp [Equalizer.Presieve.firstMap, firstMap]
         simp only [limit.lift_π, map_lift_piComparison, assoc, Fan.mk_π_app, Functor.map_comp]
-        dsimp [Equalizer.Presieve.firstMap, firstMap]
-        erw [piComparison_comp_π_assoc]
+        rw [piComparison_comp_π_assoc]
       · refine' limit.hom_ext (fun j => _)
         dsimp [Equalizer.Presieve.secondMap, secondMap]
         simp only [limit.lift_π, map_lift_piComparison, assoc, Fan.mk_π_app, Functor.map_comp]
-        erw [piComparison_comp_π_assoc]
+        rw [piComparison_comp_π_assoc]
       · dsimp
         simp
   · refine' Fork.ext (Iso.refl _) _
chore: ensure all instances referred to directly have explicit names (#6423)

Per https://github.com/leanprover/lean4/issues/2343, we are going to need to change the automatic generation of instance names, as they become too long.

This PR ensures that everywhere in Mathlib that refers to an instance by name, that name is given explicitly, rather than being automatically generated.

There are four exceptions, which are now commented, with links to https://github.com/leanprover/lean4/issues/2343.

This was implemented by running Mathlib against a modified Lean that appended _ᾰ to all automatically generated names, and fixing everything.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -292,7 +292,7 @@ set_option linter.uppercaseLean3 false in
 #align category_theory.Sheaf.hom CategoryTheory.Sheaf.Hom
 
 @[simps id_val comp_val]
-instance : Category (Sheaf J A) where
+instance instCategorySheaf : Category (Sheaf J A) where
   Hom := Hom
   id _ := ⟨𝟙 _⟩
   comp f g := ⟨f.val ≫ g.val⟩
chore: more universe generalisations / fixes (#5659)

There are changes of two types: first I add some .{w} in some declarations to ensure that universes are in the right order. Secondly I generalise some results from Category.{max u1 v1, u2} to Category.{v2, u2}.

From the Copenhagen workshop.

Diff
@@ -37,6 +37,16 @@ and `A` live in the same universe.
   Cf https://stacks.math.columbia.edu/tag/0073, which is a weaker version of this statement (it's
   only over spaces, not sites) and https://stacks.math.columbia.edu/tag/00YR (a), which
   additionally assumes filtered colimits.
+
+## Implementation notes
+
+Occasionally we need to take a limit in `A` of a collection of morphisms of `C` indexed
+by a collection of objects in `C`. This turns out to force the morphisms of `A` to be
+in a sufficiently large universe. Rather than use `UnivLE` we prove some results for
+a category `A'` instead, whose morphism universe of `A'` is defined to be `max u₁ v₁`, where
+`u₁, v₁` are the universes for `C`. Perhaps after we get better at handling universe
+inequalities this can be changed.
+
 -/
 
 
@@ -215,7 +225,7 @@ variable {J}
   If `P`s a sheaf, `S` is a cover of `X`, and `x` is a collection of morphisms from `E`
   to `P` evaluated at terms in the cover which are compatible, then we can amalgamate
   the `x`s to obtain a single morphism `E ⟶ P.obj (op X)`. -/
-def IsSheaf.amalgamate {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
+def IsSheaf.amalgamate {A : Type u₂} [Category.{v₂} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.Cover X) (x : ∀ I : S.Arrow, E ⟶ P.obj (op I.Y))
     (hx : ∀ I : S.Relation, x I.fst ≫ P.map I.g₁.op = x I.snd ≫ P.map I.g₂.op) : E ⟶ P.obj (op X) :=
   (hP _ _ S.condition).amalgamate (fun Y f hf => x ⟨Y, f, hf⟩) fun Y₁ Y₂ Z g₁ g₂ f₁ f₂ h₁ h₂ w =>
@@ -223,7 +233,7 @@ def IsSheaf.amalgamate {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X :
 #align category_theory.presheaf.is_sheaf.amalgamate CategoryTheory.Presheaf.IsSheaf.amalgamate
 
 @[reassoc (attr := simp)]
-theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
+theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{v₂} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.Cover X) (x : ∀ I : S.Arrow, E ⟶ P.obj (op I.Y))
     (hx : ∀ I : S.Relation, x I.fst ≫ P.map I.g₁.op = x I.snd ≫ P.map I.g₂.op) (I : S.Arrow) :
     hP.amalgamate S x hx ≫ P.map I.f.op = x _ := by
@@ -233,7 +243,7 @@ theorem IsSheaf.amalgamate_map {A : Type u₂} [Category.{max v₁ u₁} A] {E :
       (fun Y₁ Y₂ Z g₁ g₂ f₁ f₂ h₁ h₂ w => hx ⟨Y₁, Y₂, Z, g₁, g₂, f₁, f₂, h₁, h₂, w⟩) f hf
 #align category_theory.presheaf.is_sheaf.amalgamate_map CategoryTheory.Presheaf.IsSheaf.amalgamate_map
 
-theorem IsSheaf.hom_ext {A : Type u₂} [Category.{max v₁ u₁} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
+theorem IsSheaf.hom_ext {A : Type u₂} [Category.{v₂} A] {E : A} {X : C} {P : Cᵒᵖ ⥤ A}
     (hP : Presheaf.IsSheaf J P) (S : J.Cover X) (e₁ e₂ : E ⟶ P.obj (op X))
     (h : ∀ I : S.Arrow, e₁ ≫ P.map I.f.op = e₂ ≫ P.map I.f.op) : e₁ = e₂ :=
   (hP _ _ S.condition).isSeparatedFor.ext fun Y f hf => h ⟨Y, f, hf⟩
@@ -454,13 +464,20 @@ namespace Presheaf
 -- between 00VQ and 00VR.
 variable {C : Type u₁} [Category.{v₁} C]
 
-variable {A : Type u₂} [Category.{max v₁ u₁} A]
+-- `A` is a general category; `A'` is a variant where the morphisms live in a large enough
+-- universe to guarantee that we can take limits in A of things coming from C.
+-- I would have liked to use something like `UnivLE.{max v₁ u₁, v₂}` as a hypothesis on
+-- `A`'s morphism universe rather than introducing `A'` but I can't get it to work.
+-- So, for now, results which need max v₁ u₁ ≤ v₂ are just stated for `A'` and `P' : Cᵒᵖ ⥤ A'`
+-- instead.
+variable {A : Type u₂} [Category.{v₂} A]
+variable {A' : Type u₂} [Category.{max v₁ u₁} A']
 
 variable (J : GrothendieckTopology C)
 
 variable {U : C} (R : Presieve U)
 
-variable (P : Cᵒᵖ ⥤ A)
+variable (P : Cᵒᵖ ⥤ A) (P' : Cᵒᵖ ⥤ A')
 
 section MultiequalizerConditions
 
@@ -527,6 +544,7 @@ end MultiequalizerConditions
 section
 
 variable [HasProducts.{max u₁ v₁} A]
+variable [HasProducts.{max u₁ v₁} A']
 
 /--
 The middle object of the fork diagram given in Equation (3) of [MM92], as well as the fork diagram
@@ -580,6 +598,8 @@ def IsSheaf' (P : Cᵒᵖ ⥤ A) : Prop :=
   ∀ (U : C) (R : Presieve U) (_ : generate R ∈ J U), Nonempty (IsLimit (Fork.ofι _ (w R P)))
 #align category_theory.presheaf.is_sheaf' CategoryTheory.Presheaf.IsSheaf'
 
+-- Again I wonder whether `UnivLE` can somehow be used to allow `s` to take
+-- values in a more general universe.
 /-- (Implementation). An auxiliary lemma to convert between sheaf conditions. -/
 def isSheafForIsSheafFor' (P : Cᵒᵖ ⥤ A) (s : A ⥤ Type max v₁ u₁)
     [∀ J, PreservesLimitsOfShape (Discrete.{max v₁ u₁} J) s] (U : C) (R : Presieve U) :
@@ -608,14 +628,16 @@ def isSheafForIsSheafFor' (P : Cᵒᵖ ⥤ A) (s : A ⥤ Type max v₁ u₁)
     simp [Fork.ι]
 #align category_theory.presheaf.is_sheaf_for_is_sheaf_for' CategoryTheory.Presheaf.isSheafForIsSheafFor'
 
+-- Remark : this lemma and the next use `A'` not `A`; `A'` is `A` but with a universe
+-- restriction. Can they be generalised?
 /-- The equalizer definition of a sheaf given by `isSheaf'` is equivalent to `isSheaf`. -/
-theorem isSheaf_iff_isSheaf' : IsSheaf J P ↔ IsSheaf' J P := by
+theorem isSheaf_iff_isSheaf' : IsSheaf J P' ↔ IsSheaf' J P' := by
   constructor
   · intro h U R hR
     refine' ⟨_⟩
     apply coyonedaJointlyReflectsLimits
     intro X
-    have q : Presieve.IsSheafFor (P ⋙ coyoneda.obj X) _ := h X.unop _ hR
+    have q : Presieve.IsSheafFor (P' ⋙ coyoneda.obj X) _ := h X.unop _ hR
     rw [← Presieve.isSheafFor_iff_generate] at q
     rw [Equalizer.Presieve.sheaf_condition] at q
     replace q := Classical.choice q
@@ -645,13 +667,13 @@ Note this lemma applies for "algebraic" categories, eg groups, abelian groups an
 for the category of topological spaces, topological rings, etc since reflecting isomorphisms doesn't
 hold.
 -/
-theorem isSheaf_iff_isSheaf_forget (s : A ⥤ Type max v₁ u₁) [HasLimits A] [PreservesLimits s]
-    [ReflectsIsomorphisms s] : IsSheaf J P ↔ IsSheaf J (P ⋙ s) := by
+theorem isSheaf_iff_isSheaf_forget (s : A' ⥤ Type max v₁ u₁) [HasLimits A'] [PreservesLimits s]
+    [ReflectsIsomorphisms s] : IsSheaf J P' ↔ IsSheaf J (P' ⋙ s) := by
   rw [isSheaf_iff_isSheaf', isSheaf_iff_isSheaf']
   refine' forall_congr' (fun U => ball_congr (fun R _ => _))
   letI : ReflectsLimits s := reflectsLimitsOfReflectsIsomorphisms
-  have : IsLimit (s.mapCone (Fork.ofι _ (w R P))) ≃ IsLimit (Fork.ofι _ (w R (P ⋙ s))) :=
-    isSheafForIsSheafFor' P s U R
+  have : IsLimit (s.mapCone (Fork.ofι _ (w R P'))) ≃ IsLimit (Fork.ofι _ (w R (P' ⋙ s))) :=
+    isSheafForIsSheafFor' P' s U R
   rw [← Equiv.nonempty_congr this]
   constructor
   · haveI := preservesSmallestLimitsOfPreservesLimits s
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 Kevin Buzzard, Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.sites.sheaf
-! leanprover-community/mathlib commit 2efd2423f8d25fa57cf7a179f5d8652ab4d0df44
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Limits.Preserves.Shapes.Equalizers
 import Mathlib.CategoryTheory.Limits.Preserves.Shapes.Products
@@ -14,6 +9,8 @@ import Mathlib.CategoryTheory.Limits.Yoneda
 import Mathlib.CategoryTheory.Preadditive.FunctorCategory
 import Mathlib.CategoryTheory.Sites.SheafOfTypes
 
+#align_import category_theory.sites.sheaf from "leanprover-community/mathlib"@"2efd2423f8d25fa57cf7a179f5d8652ab4d0df44"
+
 /-!
 # Sheaves taking values in a category
 
chore: review of automation in category theory (#4793)

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

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

Diff
@@ -368,8 +368,8 @@ def sheafEquivSheafOfTypes : Sheaf J (Type w) ≌ SheafOfTypes J where
   inverse :=
     { obj := fun S => ⟨S.val, (isSheaf_iff_isSheaf_of_type _ _).2 S.2⟩
       map := fun f => ⟨f.val⟩ }
-  unitIso := NatIso.ofComponents (fun X => Iso.refl _) (by aesop_cat)
-  counitIso := NatIso.ofComponents (fun X => Iso.refl _) (by aesop_cat)
+  unitIso := NatIso.ofComponents fun X => Iso.refl _
+  counitIso := NatIso.ofComponents fun X => Iso.refl _
 set_option linter.uppercaseLean3 false in
 #align category_theory.Sheaf_equiv_SheafOfTypes CategoryTheory.sheafEquivSheafOfTypes
 
@@ -441,14 +441,6 @@ instance Sheaf.Hom.addCommGroup : AddCommGroup (P ⟶ Q) :=
 
 instance : Preadditive (Sheaf J A) where
   homGroup P Q := Sheaf.Hom.addCommGroup
-  add_comp P Q R f f' g := by
-    ext
-    dsimp
-    simp
-  comp_add P Q R f g g' := by
-    ext
-    dsimp
-    simp
 
 end Preadditive
 
chore: made Opposite a structure (#3193)

The opposite category is no longer a type synonym, but a structure.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net>

Diff
@@ -84,11 +84,10 @@ def conesEquivSieveCompatibleFamily :
     (S.arrows.diagram.op ⋙ P).cones.obj E ≃
       { x : FamilyOfElements (P ⋙ coyoneda.obj E) (S : Presieve X) // x.SieveCompatible } where
   toFun π :=
-    ⟨fun Y f h => π.app (op ⟨Over.mk f, h⟩), fun _ => by
-      intros
+    ⟨fun Y f h => π.app (op ⟨Over.mk f, h⟩), fun X Y f g hf => by
       apply (id_comp _).symm.trans
       dsimp
-      convert π.naturality (Quiver.Hom.op (Over.homMk _ _)) <;> rfl⟩
+      exact π.naturality (Quiver.Hom.op (Over.homMk _ (by rfl)))⟩
   invFun x :=
     { app := fun f => x.1 f.unop.1.hom f.unop.2
       naturality := fun f f' g => by
@@ -96,7 +95,7 @@ def conesEquivSieveCompatibleFamily :
         dsimp
         rw [id_comp]
         convert rfl
-        rw [Over.w g.unop] }
+        rw [Over.w] }
   left_inv π := rfl
   right_inv x := rfl
 #align category_theory.presheaf.cones_equiv_sieve_compatible_family CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily
chore: forward port mathlib#17611, 18742, 18198, 18520 (#3389)

SHA-only updates:

Substantative forward port:

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard, Bhavik Mehta
 
 ! This file was ported from Lean 3 source module category_theory.sites.sheaf
-! leanprover-community/mathlib commit a67ec23dd8dc08195d77b6df2cd21f9c64989131
+! leanprover-community/mathlib commit 2efd2423f8d25fa57cf7a179f5d8652ab4d0df44
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
feat: port CategoryTheory.Sites.Sheaf (#3244)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Dependencies 3 + 313

314 files ported (99.1%)
131176 lines ported (99.2%)
Show graph

The unported dependencies are