Documentation

Mathlib.Topology.Sheaves.SheafCondition.PairwiseIntersections

Equivalent formulations of the sheaf condition #

We give an equivalent formulation of the sheaf condition.

Given any indexed type ι, we define overlap ι, a category with objects corresponding to

Any open cover U : ι → Opens X provides a functor diagram U : overlap ι ⥤ (Opens X)ᵒᵖ.

There is a canonical cone over this functor, cone U, whose cone point is isup U, and in fact this is a limit cone.

A presheaf F : Presheaf C X is a sheaf precisely if it preserves this limit. We express this in two equivalent ways, as

We show that this sheaf condition is equivalent to the OpensLeCover sheaf condition, and thereby also equivalent to the default sheaf condition.

An alternative formulation of the sheaf condition (which we prove equivalent to the usual one below as isSheaf_iff_isSheafPairwiseIntersections).

A presheaf is a sheaf if F sends the cone (Pairwise.cocone U).op to a limit cone. (Recall Pairwise.cocone U has cone point iSup U, mapping down to the U i and the U i ⊓ U j.)

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

    An alternative formulation of the sheaf condition (which we prove equivalent to the usual one below as isSheaf_iff_isSheafPreservesLimitPairwiseIntersections).

    A presheaf is a sheaf if F preserves the limit of Pairwise.diagram U. (Recall Pairwise.diagram U is the diagram consisting of the pairwise intersections U i ⊓ U j mapping into the open sets U i. This diagram has limit iSup U.)

    Equations
    Instances For

      The category of single and double intersections of the U i maps into the category of open sets below some U i.

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

        The diagram consisting of the U i and U i ⊓ U j is cofinal in the diagram of all opens contained in some U i.

        Equations
        • =

        The diagram in Opens X indexed by pairwise intersections from U is isomorphic (in fact, equal) to the diagram factored through OpensLeCover U.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem TopCat.Presheaf.isSheafOpensLeCover_iff_isSheafPairwiseIntersections {C : Type u} [CategoryTheory.Category.{v, u} C] {X : TopCat} (F : TopCat.Presheaf C X) :
          F.IsSheafOpensLeCover F.IsSheafPairwiseIntersections

          The sheaf condition in terms of a limit diagram over all { V : Opens X // ∃ i, V ≤ U i } is equivalent to the reformulation in terms of a limit diagram over U i and U i ⊓ U j.

          theorem TopCat.Presheaf.isSheaf_iff_isSheafPairwiseIntersections {C : Type u} [CategoryTheory.Category.{v, u} C] {X : TopCat} (F : TopCat.Presheaf C X) :
          F.IsSheaf F.IsSheafPairwiseIntersections

          The sheaf condition in terms of an equalizer diagram is equivalent to the reformulation in terms of a limit diagram over U i and U i ⊓ U j.

          theorem TopCat.Presheaf.isSheaf_iff_isSheafPreservesLimitPairwiseIntersections {C : Type u} [CategoryTheory.Category.{v, u} C] {X : TopCat} (F : TopCat.Presheaf C X) :
          F.IsSheaf F.IsSheafPreservesLimitPairwiseIntersections

          The sheaf condition in terms of an equalizer diagram is equivalent to the reformulation in terms of the presheaf preserving the limit of the diagram consisting of the U i and U i ⊓ U j.

          For a sheaf F, F(U ⊔ V) is the pullback of F(U) ⟶ F(U ⊓ V) and F(V) ⟶ F(U ⊓ V). This is the pullback cone.

          Equations
          Instances For
            @[simp]
            theorem TopCat.Sheaf.interUnionPullbackCone_pt {C : Type u} [CategoryTheory.Category.{v, u} C] {X : TopCat} (F : TopCat.Sheaf C X) (U : TopologicalSpace.Opens X) (V : TopologicalSpace.Opens X) :
            (F.interUnionPullbackCone U V).pt = F.val.obj (Opposite.op (U V))
            @[simp]
            theorem TopCat.Sheaf.interUnionPullbackCone_fst {C : Type u} [CategoryTheory.Category.{v, u} C] {X : TopCat} (F : TopCat.Sheaf C X) (U : TopologicalSpace.Opens X) (V : TopologicalSpace.Opens X) :
            (F.interUnionPullbackCone U V).fst = F.val.map (CategoryTheory.homOfLE ).op
            @[simp]
            theorem TopCat.Sheaf.interUnionPullbackCone_snd {C : Type u} [CategoryTheory.Category.{v, u} C] {X : TopCat} (F : TopCat.Sheaf C X) (U : TopologicalSpace.Opens X) (V : TopologicalSpace.Opens X) :
            (F.interUnionPullbackCone U V).snd = F.val.map (CategoryTheory.homOfLE ).op

            (Implementation). Every cone over F(U) ⟶ F(U ⊓ V) and F(V) ⟶ F(U ⊓ V) factors through F(U ⊔ V).

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

              For a sheaf F, F(U ⊔ V) is the pullback of F(U) ⟶ F(U ⊓ V) and F(V) ⟶ F(U ⊓ V).

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

                If U, V are disjoint, then F(U ⊔ V) = F(U) × F(V).

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def TopCat.Sheaf.objSupIsoProdEqLocus {X : TopCat} (F : TopCat.Sheaf CommRingCat X) (U : TopologicalSpace.Opens X) (V : TopologicalSpace.Opens X) :
                  F.val.obj (Opposite.op (U V)) CommRingCat.of { x : (F.val.obj (Opposite.op U)) × (F.val.obj (Opposite.op V)) // x (RingHom.comp (F.val.map (CategoryTheory.homOfLE ).op) (RingHom.fst (F.val.obj (Opposite.op U)) (F.val.obj (Opposite.op V)))).eqLocus (RingHom.comp (F.val.map (CategoryTheory.homOfLE ).op) (RingHom.snd (F.val.obj (Opposite.op U)) (F.val.obj (Opposite.op V)))) }

                  F(U ⊔ V) is isomorphic to the eq_locus of the two maps F(U) × F(V) ⟶ F(U ⊓ V).

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem TopCat.Sheaf.objSupIsoProdEqLocus_hom_fst {X : TopCat} (F : TopCat.Sheaf CommRingCat X) (U : TopologicalSpace.Opens X) (V : TopologicalSpace.Opens X) (x : (F.val.obj (Opposite.op (U V)))) :
                    (↑((F.objSupIsoProdEqLocus U V).hom x)).1 = (F.val.map (CategoryTheory.homOfLE ).op) x
                    theorem TopCat.Sheaf.objSupIsoProdEqLocus_hom_snd {X : TopCat} (F : TopCat.Sheaf CommRingCat X) (U : TopologicalSpace.Opens X) (V : TopologicalSpace.Opens X) (x : (F.val.obj (Opposite.op (U V)))) :
                    (↑((F.objSupIsoProdEqLocus U V).hom x)).2 = (F.val.map (CategoryTheory.homOfLE ).op) x
                    theorem TopCat.Sheaf.objSupIsoProdEqLocus_inv_fst {X : TopCat} (F : TopCat.Sheaf CommRingCat X) (U : TopologicalSpace.Opens X) (V : TopologicalSpace.Opens X) (x : { x : (F.val.obj (Opposite.op U)) × (F.val.obj (Opposite.op V)) // x (RingHom.comp (F.val.map (CategoryTheory.homOfLE ).op) (RingHom.fst (F.val.obj (Opposite.op U)) (F.val.obj (Opposite.op V)))).eqLocus (RingHom.comp (F.val.map (CategoryTheory.homOfLE ).op) (RingHom.snd (F.val.obj (Opposite.op U)) (F.val.obj (Opposite.op V)))) }) :
                    (F.val.map (CategoryTheory.homOfLE ).op) ((F.objSupIsoProdEqLocus U V).inv x) = (↑x).1
                    theorem TopCat.Sheaf.objSupIsoProdEqLocus_inv_snd {X : TopCat} (F : TopCat.Sheaf CommRingCat X) (U : TopologicalSpace.Opens X) (V : TopologicalSpace.Opens X) (x : { x : (F.val.obj (Opposite.op U)) × (F.val.obj (Opposite.op V)) // x (RingHom.comp (F.val.map (CategoryTheory.homOfLE ).op) (RingHom.fst (F.val.obj (Opposite.op U)) (F.val.obj (Opposite.op V)))).eqLocus (RingHom.comp (F.val.map (CategoryTheory.homOfLE ).op) (RingHom.snd (F.val.obj (Opposite.op U)) (F.val.obj (Opposite.op V)))) }) :
                    (F.val.map (CategoryTheory.homOfLE ).op) ((F.objSupIsoProdEqLocus U V).inv x) = (↑x).2