Documentation

Mathlib.CategoryTheory.Sites.Hypercover.SheafOfTypes

1-hypercovers and (pre)sheaves of types #

In this file we provide some API for working with 1-hypercovers for sheaves of types.

Main declarations #

If the pre-0-hypercover E has pairwise pullbacks, the sections over the multifork associated to a presheaf of types are equivalent to the compatible families on E.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    A presheaf F of types is (strongly) separated for a pre-1-hypercover if F is separated for both the 0 and the 1-components.

    Instances For

      A presheaf F of types is (strongly) a sheaf for a pre-1-hypercover if F is a sheaf for both the 0 and the 1-components. This implies that the multiequalizer diagram attached to E is exact (see CategoryTheory.PreOneHypercover.IsStronglySheafFor.isLimitMultifork).

      Instances For
        theorem CategoryTheory.PreOneHypercover.IsStronglySeparatedFor.arrowsCompatible {C : Type u_1} [Category.{v_1, u_1} C] {X : C} {E : PreOneHypercover X} {F : Functor Cᵒᵖ (Type u_2)} (h : E.IsStronglySeparatedFor F) (x : (i : E.I₀) → F.obj (Opposite.op (E.X i))) (hc : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), (ConcreteCategory.hom (F.map (E.p₁ k).op)) (x i) = (ConcreteCategory.hom (F.map (E.p₂ k).op)) (x j)) :
        noncomputable def CategoryTheory.PreOneHypercover.IsStronglySheafFor.amalgamate {C : Type u_1} [Category.{v_1, u_1} C] {X : C} {E : PreOneHypercover X} {F : Functor Cᵒᵖ (Type u_2)} (h : E.IsStronglySheafFor F) (x : (i : E.I₀) → F.obj (Opposite.op (E.X i))) (hc : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), (ConcreteCategory.hom (F.map (E.p₁ k).op)) (x i) = (ConcreteCategory.hom (F.map (E.p₂ k).op)) (x j)) :

        Glue sections of a Type-valued sheaf over a 1-hypercover.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.PreOneHypercover.IsStronglySheafFor.map_amalgamate {C : Type u_1} [Category.{v_1, u_1} C] {X : C} {E : PreOneHypercover X} {F : Functor Cᵒᵖ (Type u_2)} (h : E.IsStronglySheafFor F) (x : (i : E.I₀) → F.obj (Opposite.op (E.X i))) (hc : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), (ConcreteCategory.hom (F.map (E.p₁ k).op)) (x i) = (ConcreteCategory.hom (F.map (E.p₂ k).op)) (x j)) (i : E.I₀) :
          (ConcreteCategory.hom (F.map (E.f i).op)) (h.amalgamate x hc) = x i

          F satisfies the (strong) sheaf condition for the pre-1-hypercover E, then the multiequalizer diagram attached to E is limiting.

          Equations
          Instances For

            Being a sheaf for a presieve R is local on the target in the following sense: If E is a pre-1-hypercover for which F is separated and a sheaf for the 0-components, then to check that F is a sheaf for R it suffices to check:

            • F is a sheaf for the pullbacks of R along the maps from the 0-components.
            • F is separated for the pullbacks of R along the maps from the 1-components.

            If F is a J-sheaf, then being a sheaf for a presieve R is J-local on the target, i.e. it can be checked on the pullbacks from a 1-hypercover.