category_theory.sites.sheaf
⟷
Mathlib.CategoryTheory.Sites.Sheaf
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
@[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>
@@ -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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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 => _
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/284fdd2962e67d2932fa3a79ce19fcf92d38e228
@@ -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 [*]
mathlib commit https://github.com/leanprover-community/mathlib/commit/5ec62c8106221a3f9160e4e4fcc3eed79fe213e9
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/1a4df69ca1a9a0e5e26bfe12e2b92814216016d0
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/21e3562c5e12d846c7def5eff8cdbc520d7d4936
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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>
@@ -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
@@ -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)⟩
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -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
Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.
@@ -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
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)
@@ -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
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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
refine
s (#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 refine
s, but maybe the current change is beneficial.
@@ -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
Nsmul
-> NSMul
, Zpow
-> ZPow
, etc (#9067)
Normalising to naming convention rule number 6.
@@ -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
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
.
@@ -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
I was planning to add some stuff to this file which was already over 1000 lines long.
IsSheafFor
is now in CategoryTheory/Sites/IsSheafFor
.CategoryTheory/Sites/EqualizerSheafCondition
IsSheaf
/IsSeparated
are left in the file CategoryTheory/Sites/SheafOfTypes
.@@ -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"
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>
@@ -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
@@ -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. -/
@@ -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. -/
@@ -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. -/
@@ -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
@@ -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 _) _
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>
@@ -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⟩
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.
@@ -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
@@ -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
@@ -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
@@ -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
SHA-only updates:
CategoryTheory.Sites.Sheaf
already uses aesop_cat
at this location, nothing to port.Topology.FiberBundle.Trivialization
, is already in mathlib4.FunLike
change to Data.PEquiv
is already in mathlib4.Substantative forward port:
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -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.
-/
The unported dependencies are