File: Mathlib/CategoryTheory/Sites/IsSheafOneHypercover.lean

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily
code: /-- A family of 1-hypercovers consists of the data of a predicate on
`OneHypercover.{w} J X` for all `X`. -/
abbrev OneHypercoverFamily 
goal: Type (max (max u (w + 1)) v)

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsGenerating
code: /-- A family of 1-hypercovers generates the topology if any covering sieve
contains the sieve generated by the underlying covering of one of these 1-hypercovers.
See `OneHypercoverFamily.isSheaf_iff` for the characterization of sheaves. -/
class IsGenerating : Prop where
  le {X : C} (S : Sieve X) (hS : S ∈ J X) :
    ∃ (E : J.OneHypercover X) (_ : H E), E.sieve₀ ≤ S
goal: Prop

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsGenerating.le
code: /-- A family of 1-hypercovers generates the topology if any covering sieve
contains the sieve generated by the underlying covering of one of these 1-hypercovers.
See `OneHypercoverFamily.isSheaf_iff` for the characterization of sheaves. -/
class IsGenerating : Prop where
  le {X : C} (S : Sieve X) (hS : S ∈ J X) :
    ∃ (E : J.OneHypercover X) (_ : H E), E.sieve₀ ≤ S
goal: ∃ E, ∃ (_ : H E), E.sieve₀ ≤ S

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.exists_oneHypercover
code: lemma exists_oneHypercover {X : C} (S : Sieve X) (hS : S ∈ J X) :
    ∃ (E : J.OneHypercover X) (_ : H E), E.sieve₀ ≤ S 
goal: ∃ E, ∃ (_ : H E), E.sieve₀ ≤ S

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.hom_ext
code: lemma hom_ext {X : C} (S : Sieve X) (hS : S ∈ J X) {T : A}
    {x y : T ⟶ P.obj (Opposite.op X)}
    (h : ∀ ⦃Y : C⦄ (f : Y ⟶ X) (_ : S f), x ≫ P.map f.op = y ≫ P.map f.op) :
    x = y 
goal: x = y

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.lift
code: /-- Auxiliary definition for `isLimit`. -/
noncomputable def lift : F.pt ⟶ P.obj (Opposite.op X) 
goal: F.pt ⟶ P.obj (Opposite.op X)

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.fac'
code: @[reassoc]
lemma fac' (i : E.I₀) :
    lift hP hE le F ≫ P.map (E.f i).op =
      F.ι ⟨_, E.f i, le _ (Sieve.ofArrows_mk _ _ _)⟩ 
goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.lift hP hE le F)
    (P.map (E.f i).op) =
  F.ι { Y := E.X i, f := E.f i, hf := ⋯ }

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.fac
code: lemma fac {Y : C} (f : Y ⟶ X) (hf : S f) :
    lift hP hE le F ≫ P.map f.op = F.ι ⟨Y, f, hf⟩ 
goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.lift hP hE le F)
    (P.map f.op) =
  F.ι { Y := Y, f := f, hf := hf }

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.isLimit
code: /-- Auxiliary definition for `OneHypercoverFamily.isSheaf_iff`. -/
noncomputable def isLimit :
    IsLimit (Cover.multifork ⟨S, J.superset_covering le E.mem₀⟩ P) 
goal: CategoryTheory.Limits.IsLimit (CategoryTheory.GrothendieckTopology.Cover.multifork ⟨S, ⋯⟩ P)

full_name: CategoryTheory.GrothendieckTopology.OneHypercoverFamily.isSheaf_iff
code: lemma isSheaf_iff :
    Presheaf.IsSheaf J P ↔ ∀ ⦃X : C⦄ (E : J.OneHypercover X)
      (_ : H E), Nonempty (IsLimit (E.multifork P)) 
goal: CategoryTheory.Presheaf.IsSheaf J P ↔
  ∀ ⦃X : C⦄ (E : J.OneHypercover X), H E → Nonempty (CategoryTheory.Limits.IsLimit (E.multifork P))

full_name: CategoryTheory.GrothendieckTopology.IsGeneratedByOneHypercovers
code: /-- Condition that a topology is generated by 1-hypercovers of size `w`. -/
abbrev IsGeneratedByOneHypercovers : Prop 
goal: Prop

full_name: CategoryTheory.GrothendieckTopology.instIsGeneratedByOneHypercovers
code: instance : IsGeneratedByOneHypercovers.{max u v} J 
goal: J.IsGeneratedByOneHypercovers

full_name: CategoryTheory.Presheaf.isSheaf_iff_of_isGeneratedByOneHypercovers
code: lemma isSheaf_iff_of_isGeneratedByOneHypercovers
    [GrothendieckTopology.IsGeneratedByOneHypercovers.{w} J] (P : Cᵒᵖ ⥤ A) :
    IsSheaf J P ↔ ∀ ⦃X : C⦄ (E : GrothendieckTopology.OneHypercover.{w} J X),
        Nonempty (IsLimit (E.multifork P)) 
goal: CategoryTheory.Presheaf.IsSheaf J P ↔
  ∀ ⦃X : C⦄ (E : J.OneHypercover X), Nonempty (CategoryTheory.Limits.IsLimit (E.multifork P))