Documentation

Mathlib.Algebra.Category.ModuleCat.Presheaf.Sheafify

The associated sheaf of a presheaf of modules #

In this file, given a presheaf of modules M₀ over a presheaf of rings R₀, we construct the associated sheaf of M₀. More precisely, if R is a sheaf of rings and α : R₀ ⟶ R.val is locally bijective, and A is the sheafification of the underlying presheaf of abelian groups of M₀, i.e. we have a locally bijective map φ : M₀.presheaf ⟶ A.val, then we endow A with the structure of a sheaf of modules over R: this is PresheafOfModules.sheafify α φ.

In many application, the morphism α shall be the identity, but this more general construction allows the sheafification of both the presheaf of rings and the presheaf of modules.

The scalar multiplication of family of elements of a presheaf of modules M over R by a family of elements of R.

Equations
  • r.smul m f hf = r f hf m f hf
Instances For
    theorem PresheafOfModules.Sheafify.app_eq_of_isLocallyInjective {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : CategoryTheory.Functor Cᵒᵖ RingCat} {R : CategoryTheory.Functor Cᵒᵖ RingCat} (α : R₀ R) [CategoryTheory.Presheaf.IsLocallyInjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Functor Cᵒᵖ AddCommGrp} (φ : M₀.presheaf A) [CategoryTheory.Presheaf.IsLocallyInjective J φ] (hA : CategoryTheory.Presheaf.IsSeparated J A) {Y : C} (r₀ : (R₀.obj { unop := Y })) (r₀' : (R₀.obj { unop := Y })) (m₀ : (M₀.presheaf.obj { unop := Y })) (m₀' : (M₀.presheaf.obj { unop := Y })) (hr₀ : (α.app { unop := Y }) r₀ = (α.app { unop := Y }) r₀') (hm₀ : (φ.app { unop := Y }) m₀ = (φ.app { unop := Y }) m₀') :
    (φ.app { unop := Y }) (r₀ m₀) = (φ.app { unop := Y }) (r₀' m₀')
    theorem CategoryTheory.Presieve.FamilyOfElements.isCompatible_map_smul_aux {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : CategoryTheory.Functor Cᵒᵖ RingCat} {R : CategoryTheory.Functor Cᵒᵖ RingCat} (α : R₀ R) [CategoryTheory.Presheaf.IsLocallyInjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Functor Cᵒᵖ AddCommGrp} (φ : M₀.presheaf A) [CategoryTheory.Presheaf.IsLocallyInjective J φ] (hA : CategoryTheory.Presheaf.IsSeparated J A) {X : C} (r : (R.obj { unop := X })) (m : (A.obj { unop := X })) {Y : C} {Z : C} (f : Y X) (g : Z Y) (r₀ : (R₀.obj { unop := Y })) (r₀' : (R₀.obj { unop := Z })) (m₀ : (M₀.presheaf.obj { unop := Y })) (m₀' : (M₀.presheaf.obj { unop := Z })) (hr₀ : (α.app { unop := Y }) r₀ = (R.map f.op) r) (hr₀' : (α.app { unop := Z }) r₀' = (R.map (CategoryTheory.CategoryStruct.comp f.op g.op)) r) (hm₀ : (φ.app { unop := Y }) m₀ = (A.map f.op) m) (hm₀' : (φ.app { unop := Z }) m₀' = (A.map (CategoryTheory.CategoryStruct.comp f.op g.op)) m) :
    (φ.app { unop := Z }) ((M₀.presheaf.map g.op) (r₀ m₀)) = (φ.app { unop := Z }) (r₀' m₀')
    structure PresheafOfModules.Sheafify.SMulCandidate {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : CategoryTheory.Functor Cᵒᵖ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ R.val) {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf A.val) {X : Cᵒᵖ} (r : (R.val.obj X)) (m : (A.val.obj X)) :

    Assuming α : R₀ ⟶ R.val is the sheafification map of a presheaf of rings R₀ and φ : M₀.presheaf ⟶ A.val is the sheafification map of the underlying sheaf of abelian groups of a presheaf of modules M₀ over R₀, then given r : R.val.obj X and m : A.val.obj X, this structure contains the data of x : A.val.obj X along with the property which makes x a good candidate for the definition of the scalar multiplication r • m.

    • x : (A.val.obj X)

      The candidate for the scalar product r • m.

    • h : ∀ ⦃Y : Cᵒᵖ⦄ (f : X Y) (r₀ : (R₀.obj Y)), (α.app Y) r₀ = (R.val.map f) r∀ (m₀ : (M₀.obj Y)), (φ.app Y) m₀ = (A.val.map f) m(A.val.map f) self.x = (φ.app Y) (r₀ m₀)
    Instances For
      theorem PresheafOfModules.Sheafify.SMulCandidate.h {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : CategoryTheory.Functor Cᵒᵖ RingCat} {R : CategoryTheory.Sheaf J RingCat} {α : R₀ R.val} {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} {φ : M₀.presheaf A.val} {X : Cᵒᵖ} {r : (R.val.obj X)} {m : (A.val.obj X)} (self : PresheafOfModules.Sheafify.SMulCandidate α φ r m) ⦃Y : Cᵒᵖ (f : X Y) (r₀ : (R₀.obj Y)) (hr₀ : (α.app Y) r₀ = (R.val.map f) r) (m₀ : (M₀.obj Y)) (hm₀ : (φ.app Y) m₀ = (A.val.map f) m) :
      (A.val.map f) self.x = (φ.app Y) (r₀ m₀)
      def PresheafOfModules.Sheafify.SMulCandidate.mk' {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : CategoryTheory.Functor Cᵒᵖ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] {X : Cᵒᵖ} (r : (R.val.obj X)) (m : (A.val.obj X)) (S : CategoryTheory.Sieve X.unop) (hS : S J.sieves X.unop) (r₀ : CategoryTheory.Presieve.FamilyOfElements (R₀.comp (CategoryTheory.forget RingCat)) S.arrows) (m₀ : CategoryTheory.Presieve.FamilyOfElements (M₀.presheaf.comp (CategoryTheory.forget AddCommGrp)) S.arrows) (hr₀ : (r₀.map (CategoryTheory.whiskerRight α (CategoryTheory.forget RingCat))).IsAmalgamation r) (hm₀ : (m₀.map (CategoryTheory.whiskerRight φ (CategoryTheory.forget AddCommGrp))).IsAmalgamation m) (a : (A.val.obj X)) (ha : ((r₀.smul m₀).map (CategoryTheory.whiskerRight φ (CategoryTheory.forget AddCommGrp))).IsAmalgamation a) :

      Constructor for SMulCandidate.

      Equations
      Instances For

        The scalar multiplication on the sheafification of a presheaf of modules.

        Equations
        Instances For
          theorem PresheafOfModules.Sheafify.map_smul_eq {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : CategoryTheory.Functor Cᵒᵖ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] {X : Cᵒᵖ} (r : (R.val.obj X)) (m : (A.val.obj X)) {Y : Cᵒᵖ} (f : X Y) (r₀ : (R₀.obj Y)) (hr₀ : (α.app Y) r₀ = (R.val.map f) r) (m₀ : (M₀.obj Y)) (hm₀ : (φ.app Y) m₀ = (A.val.map f) m) :
          (A.val.map f) (PresheafOfModules.Sheafify.smul α φ r m) = (φ.app Y) (r₀ m₀)

          The module structure on the sections of the sheafification of the underlying presheaf of abelian groups of a presheaf of modules.

          Equations
          Instances For

            Assuming α : R₀ ⟶ R.val is the sheafification map of a presheaf of rings R₀ and φ : M₀.presheaf ⟶ A.val is the sheafification map of the underlying sheaf of abelian groups of a presheaf of modules M₀ over R₀, this is the sheaf of modules over R which is obtained by endowing the sections of A.val with a scalar multiplication.

            Equations
            Instances For

              The bijection ((sheafify α φ).val ⟶ F) ≃ (M₀ ⟶ (restrictScalars α).obj F) which is part of the universal property of the sheafification of the presheaf of modules M₀, when F is a presheaf of modules which is a sheaf.

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

                The bijection (sheafify α φ ⟶ F) ≃ (M₀ ⟶ (restrictScalars α).obj ((SheafOfModules.forget _).obj F)) which is part of the universal property of the sheafification of the presheaf of modules M₀, for any sheaf of modules F, see PresheafOfModules.sheafificationAdjunction

                Equations
                Instances For

                  The morphism of sheaves of modules sheafify α φ ⟶ sheafify α φ' induced by morphisms τ₀ : M₀ ⟶ M₀' and τ : A ⟶ A' which satisfy τ₀.hom ≫ φ' = φ ≫ τ.val.

                  Equations
                  Instances For