Documentation

Mathlib.Topology.Sheaves.Skyscraper

Skyscraper (pre)sheaves #

A skyscraper (pre)sheaf ๐“• : (Pre)Sheaf C X is the (pre)sheaf with value A at point pโ‚€ that is supported only at open sets contain pโ‚€, i.e. ๐“•(U) = A if pโ‚€ โˆˆ U and ๐“•(U) = * if pโ‚€ โˆ‰ U where * is a terminal object of C. In terms of stalks, ๐“• is supported at all specializations of pโ‚€, i.e. if pโ‚€ โคณ x then ๐“•โ‚“ โ‰… A and if ยฌ pโ‚€ โคณ x then ๐“•โ‚“ โ‰… *.

Main definitions #

Main statements #

TODO: generalize universe level when calculating stalks, after generalizing universe level of stalk.

def skyscraperPresheaf {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{w, v} C] [CategoryTheory.Limits.HasTerminal C] (A : C) :

A skyscraper presheaf is a presheaf supported at a single point: if pโ‚€ โˆˆ X is a specified point, then the skyscraper presheaf ๐“• with value A is defined by U โ†ฆ A if pโ‚€ โˆˆ U and U โ†ฆ * if pโ‚€ โˆ‰ A where * is some terminal object.

Equations
    Instances For
      @[simp]
      theorem skyscraperPresheaf_obj {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{w, v} C] [CategoryTheory.Limits.HasTerminal C] (A : C) (U : (TopologicalSpace.Opens โ†‘X)แต’แต–) :
      @[simp]
      theorem skyscraperPresheaf_map {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{w, v} C] [CategoryTheory.Limits.HasTerminal C] (A : C) {U V : (TopologicalSpace.Opens โ†‘X)แต’แต–} (i : U โŸถ V) :
      def SkyscraperPresheafFunctor.map' {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{w, v} C] [CategoryTheory.Limits.HasTerminal C] {a b : C} (f : a โŸถ b) :

      Taking skyscraper presheaf at a point is functorial: c โ†ฆ skyscraper pโ‚€ c defines a functor by sending every f : a โŸถ b to the natural transformation ฮฑ defined as: ฮฑ(U) = f : a โŸถ b if pโ‚€ โˆˆ U and the unique morphism to a terminal object in C if pโ‚€ โˆ‰ U.

      Equations
        Instances For
          theorem SkyscraperPresheafFunctor.map'_comp {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{w, v} C] [CategoryTheory.Limits.HasTerminal C] {a b c : C} (f : a โŸถ b) (g : b โŸถ c) :

          Taking skyscraper presheaf at a point is functorial: c โ†ฆ skyscraper pโ‚€ c defines a functor by sending every f : a โŸถ b to the natural transformation ฮฑ defined as: ฮฑ(U) = f : a โŸถ b if pโ‚€ โˆˆ U and the unique morphism to a terminal object in C if pโ‚€ โˆ‰ U.

          Equations
            Instances For
              @[simp]
              theorem skyscraperPresheafFunctor_obj {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{w, v} C] [CategoryTheory.Limits.HasTerminal C] (A : C) :
              @[simp]
              theorem skyscraperPresheafFunctor_map {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{w, v} C] [CategoryTheory.Limits.HasTerminal C] {Xโœ Yโœ : C} (f : Xโœ โŸถ Yโœ) :

              The cocone at A for the stalk functor of skyscraperPresheaf pโ‚€ A when y โˆˆ closure {pโ‚€}

              Equations
                Instances For
                  @[simp]
                  theorem skyscraperPresheafCoconeOfSpecializes_pt {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] (A : C) [CategoryTheory.Limits.HasTerminal C] {y : โ†‘X} (h : pโ‚€ โคณ y) :
                  noncomputable def skyscraperPresheafCoconeIsColimitOfSpecializes {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] (A : C) [CategoryTheory.Limits.HasTerminal C] {y : โ†‘X} (h : pโ‚€ โคณ y) :

                  The cocone at A for the stalk functor of skyscraperPresheaf pโ‚€ A when y โˆˆ closure {pโ‚€} is a colimit

                  Equations
                    Instances For
                      noncomputable def skyscraperPresheafStalkOfSpecializes {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] (A : C) [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasColimits C] {y : โ†‘X} (h : pโ‚€ โคณ y) :

                      If y โˆˆ closure {pโ‚€}, then the stalk of skyscraperPresheaf pโ‚€ A at y is A.

                      Equations
                        Instances For

                          The cocone at * for the stalk functor of skyscraperPresheaf pโ‚€ A when y โˆ‰ closure {pโ‚€}

                          Equations
                            Instances For
                              @[simp]
                              theorem skyscraperPresheafCocone_pt {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] (A : C) [CategoryTheory.Limits.HasTerminal C] (y : โ†‘X) :
                              noncomputable def skyscraperPresheafCoconeIsColimitOfNotSpecializes {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] (A : C) [CategoryTheory.Limits.HasTerminal C] {y : โ†‘X} (h : ยฌpโ‚€ โคณ y) :

                              The cocone at * for the stalk functor of skyscraperPresheaf pโ‚€ A when y โˆ‰ closure {pโ‚€} is a colimit

                              Equations
                                Instances For
                                  noncomputable def skyscraperPresheafStalkOfNotSpecializes {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] (A : C) [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasColimits C] {y : โ†‘X} (h : ยฌpโ‚€ โคณ y) :

                                  If y โˆ‰ closure {pโ‚€}, then the stalk of skyscraperPresheaf pโ‚€ A at y is isomorphic to a terminal object.

                                  Equations
                                    Instances For

                                      If y โˆ‰ closure {pโ‚€}, then the stalk of skyscraperPresheaf pโ‚€ A at y is a terminal object

                                      Equations
                                        Instances For
                                          theorem skyscraperPresheaf_isSheaf {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] (A : C) [CategoryTheory.Limits.HasTerminal C] :
                                          def skyscraperSheaf {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] (A : C) [CategoryTheory.Limits.HasTerminal C] :

                                          The skyscraper presheaf supported at pโ‚€ with value A is the sheaf that assigns A to all opens U that contain pโ‚€ and assigns * otherwise.

                                          Equations
                                            Instances For

                                              Taking skyscraper sheaf at a point is functorial: c โ†ฆ skyscraper pโ‚€ c defines a functor by sending every f : a โŸถ b to the natural transformation ฮฑ defined as: ฮฑ(U) = f : a โŸถ b if pโ‚€ โˆˆ U and the unique morphism to a terminal object in C if pโ‚€ โˆ‰ U.

                                              Equations
                                                Instances For
                                                  def StalkSkyscraperPresheafAdjunctionAuxs.toSkyscraperPresheaf {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasColimits C] {๐“• : TopCat.Presheaf C X} {c : C} (f : ๐“•.stalk pโ‚€ โŸถ c) :
                                                  ๐“• โŸถ skyscraperPresheaf pโ‚€ c

                                                  If f : ๐“•.stalk pโ‚€ โŸถ c, then a natural transformation ๐“• โŸถ skyscraperPresheaf pโ‚€ c can be defined by: ๐“•.germ pโ‚€ โ‰ซ f : ๐“•(U) โŸถ c if pโ‚€ โˆˆ U and the unique morphism to a terminal object if pโ‚€ โˆ‰ U.

                                                  Equations
                                                    Instances For
                                                      def StalkSkyscraperPresheafAdjunctionAuxs.fromStalk {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasColimits C] {๐“• : TopCat.Presheaf C X} {c : C} (f : ๐“• โŸถ skyscraperPresheaf pโ‚€ c) :
                                                      ๐“•.stalk pโ‚€ โŸถ c

                                                      If f : ๐“• โŸถ skyscraperPresheaf pโ‚€ c is a natural transformation, then there is a morphism ๐“•.stalk pโ‚€ โŸถ c defined as the morphism from colimit to cocone at c.

                                                      Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem StalkSkyscraperPresheafAdjunctionAuxs.germ_fromStalk {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasColimits C] {๐“• : TopCat.Presheaf C X} {c : C} (f : ๐“• โŸถ skyscraperPresheaf pโ‚€ c) (U : TopologicalSpace.Opens โ†‘X) (hU : pโ‚€ โˆˆ U) :
                                                          theorem StalkSkyscraperPresheafAdjunctionAuxs.fromStalk_to_skyscraper {X : TopCat} (pโ‚€ : โ†‘X) [(U : TopologicalSpace.Opens โ†‘X) โ†’ Decidable (pโ‚€ โˆˆ U)] {C : Type v} [CategoryTheory.Category.{u, v} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasColimits C] {๐“• : TopCat.Presheaf C X} {c : C} (f : ๐“•.stalk pโ‚€ โŸถ c) :
                                                          fromStalk pโ‚€ (toSkyscraperPresheaf pโ‚€ f) = f

                                                          skyscraperPresheafFunctor is the right adjoint of Presheaf.stalkFunctor

                                                          Equations
                                                            Instances For

                                                              Taking stalks of a sheaf is the left adjoint functor to skyscraperSheafFunctor

                                                              Equations
                                                                Instances For