∀ {C : Type u_2} [inst : CategoryTheory.Category.{u_1, u_2} C] {J : CategoryTheory.GrothendieckTopology C}
  {D : Type u_5} [inst_1 : CategoryTheory.Category.{u_4, u_5} D] {FD : D → D → Type u_6} {CD : D → Type u_3}
  [inst_2 : (X Y : D) → FunLike (FD X Y) (CD X) (CD Y)] [instCC : CategoryTheory.ConcreteCategory D FD]
  [inst_3 :
    ∀ {X : C} (S : J.Cover X),
      CategoryTheory.Limits.PreservesLimitsOfShape (CategoryTheory.Limits.WalkingMulticospan S.shape)
        (CategoryTheory.forget D)]
  [inst_4 : ∀ (X : C), CategoryTheory.Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D]
  [inst_5 :
    ∀ (P : CategoryTheory.Functor Cᵒᵖ D) (X : C) (S : J.Cover X), CategoryTheory.Limits.HasMultiequalizer (S.index P)]
  [∀ (X : C), CategoryTheory.Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (CategoryTheory.forget D)]
  (P : CategoryTheory.Functor Cᵒᵖ D),
  (∀ (X : C) (S : J.Cover X) (x y : CategoryTheory.ToType (P.obj (Opposite.op X))),
      (∀ (I : S.Arrow),
          (CategoryTheory.ConcreteCategory.hom (P.map I.f.op)) x =
            (CategoryTheory.ConcreteCategory.hom (P.map I.f.op)) y) →
        x = y) →
    ∀ (X : C) (S : J.Cover X) (s : CategoryTheory.Meq (J.plusObj P) S) (T : (I : S.Arrow) → J.Cover I.Y)
      (t : (I : S.Arrow) → CategoryTheory.Meq P (T I)),
      (∀ (I : S.Arrow), ↑s I = CategoryTheory.GrothendieckTopology.Plus.mk (t I)) →
        ∀ (I : (S.bind T).Relation),
          (CategoryTheory.ConcreteCategory.hom (P.map I.r.g₁.op)) ((fun I => ↑(t I.fromMiddle) I.toMiddle) I.fst) =
            (CategoryTheory.ConcreteCategory.hom (P.map I.r.g₂.op)) ((fun I => ↑(t I.fromMiddle) I.toMiddle) I.snd)