Documentation

Mathlib.Topology.Sheaves.CommRingCat

Sheaves of (commutative) rings. #

Results specific to sheaves of commutative rings including sheaves of continuous functions TopCat.continuousFunctions with natural operations of pullback and map and sub, quotient, and localization operations on sheaves of rings with

As more results accumulate, please consider splitting this file.

References #

As an example, we now have everything we need to check the sheaf condition for a presheaf of commutative rings, merely by checking the sheaf condition for the underlying sheaf of types.

Note that the universes for TopCat and CommRingCat must be the same for this argument to go through.

A subpresheaf with a submonoid structure on each of the components.

Instances For

    The localization of a presheaf of CommRings with respect to a SubmonoidPresheaf.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def TopCat.Presheaf.SubmonoidPresheaf.toLocalizationPresheaf {X : TopCat} {F : TopCat.Presheaf CommRingCat X} (G : F.SubmonoidPresheaf) :
      F G.localizationPresheaf

      The map into the localization presheaf.

      Equations
      Instances For
        @[simp]
        theorem TopCat.Presheaf.SubmonoidPresheaf.toLocalizationPresheaf_app {X : TopCat} {F : TopCat.Presheaf CommRingCat X} (G : F.SubmonoidPresheaf) (U : (TopologicalSpace.Opens X)ᵒᵖ) :
        G.toLocalizationPresheaf.app U = CommRingCat.ofHom (algebraMap (↑(F.obj U)) (Localization (G.obj U)))
        instance TopCat.Presheaf.epi_toLocalizationPresheaf {X : TopCat} {F : TopCat.Presheaf CommRingCat X} (G : F.SubmonoidPresheaf) :
        CategoryTheory.Epi G.toLocalizationPresheaf
        Equations
        • =
        noncomputable def TopCat.Presheaf.submonoidPresheafOfStalk {X : TopCat} (F : TopCat.Presheaf CommRingCat X) (S : (x : X) → Submonoid (F.stalk x)) :
        F.SubmonoidPresheaf

        Given a submonoid at each of the stalks, we may define a submonoid presheaf consisting of sections whose restriction onto each stalk falls in the given submonoid.

        Equations
        Instances For
          @[simp]
          theorem TopCat.Presheaf.submonoidPresheafOfStalk_obj {X : TopCat} (F : TopCat.Presheaf CommRingCat X) (S : (x : X) → Submonoid (F.stalk x)) (U : (TopologicalSpace.Opens X)ᵒᵖ) :
          (F.submonoidPresheafOfStalk S).obj U = ⨅ (x : (Opposite.unop U)), Submonoid.comap (F.germ (Opposite.unop U) x ) (S x)
          Equations
          • F.instInhabitedSubmonoidPresheafCommRingCat = { default := F.submonoidPresheafOfStalk fun (x : X) => }

          The localization of a presheaf of CommRings at locally non-zero-divisor sections.

          Equations
          • F.totalQuotientPresheaf = (F.submonoidPresheafOfStalk fun (x : X) => nonZeroDivisors (F.stalk x)).localizationPresheaf
          Instances For
            noncomputable def TopCat.Presheaf.toTotalQuotientPresheaf {X : TopCat} (F : TopCat.Presheaf CommRingCat X) :
            F F.totalQuotientPresheaf

            The map into the presheaf of total quotient rings

            Equations
            • F.toTotalQuotientPresheaf = (F.submonoidPresheafOfStalk fun (x : X) => nonZeroDivisors (F.stalk x)).toLocalizationPresheaf
            Instances For

              The (bundled) commutative ring of continuous functions from a topological space to a topological commutative ring, with pointwise multiplication.

              Equations
              Instances For

                Pulling back functions into a topological ring along a continuous map is a ring homomorphism.

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

                  A homomorphism of topological rings can be postcomposed with functions from a source space X; this is a ring homomorphism (with respect to the pointwise ring operations on functions).

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

                    An upgraded version of the Yoneda embedding, observing that the continuous maps from X : TopCat to R : TopCommRingCat form a commutative ring, functorial in both X and R.

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

                      The presheaf (of commutative rings), consisting of functions on an open set U ⊆ X with values in some topological commutative ring T.

                      For example, we could construct the presheaf of continuous complex valued functions of X as

                      presheafToTopCommRing X (TopCommRingCat.of ℂ)
                      

                      (this requires import Topology.Instances.Complex).

                      Equations
                      Instances For
                        instance TopCat.Presheaf.algebra_section_stalk {X : TopCat} (F : TopCat.Presheaf CommRingCat X) {U : TopologicalSpace.Opens X} (x : U) :
                        Algebra (F.obj (Opposite.op U)) (F.stalk x)
                        Equations
                        @[simp]
                        theorem TopCat.Presheaf.stalk_open_algebraMap {X : TopCat} (F : TopCat.Presheaf CommRingCat X) {U : TopologicalSpace.Opens X} (x : U) :
                        algebraMap (F.obj (Opposite.op U)) (F.stalk x) = F.germ U x
                        def TopCat.Sheaf.objSupIsoProdEqLocus {X : TopCat} (F : TopCat.Sheaf CommRingCat X) (U V : TopologicalSpace.Opens X) :
                        F.val.obj (Opposite.op (U V)) CommRingCat.of ((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 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 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 V : TopologicalSpace.Opens X) (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 V : TopologicalSpace.Opens X) (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
                          theorem TopCat.Sheaf.objSupIsoProdEqLocus_inv_eq_iff {X : TopCat} (F : TopCat.Sheaf CommRingCat X) {U V W UW VW : TopologicalSpace.Opens X} (e : W U 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)))))) (y : (F.val.obj (Opposite.op W))) (h₁ : UW = U W) (h₂ : VW = V W) :
                          (F.val.map (CategoryTheory.homOfLE e).op) ((F.objSupIsoProdEqLocus U V).inv x) = y (F.val.map (CategoryTheory.homOfLE ).op) (↑x).1 = (F.val.map (CategoryTheory.homOfLE ).op) y (F.val.map (CategoryTheory.homOfLE ).op) (↑x).2 = (F.val.map (CategoryTheory.homOfLE ).op) y