Documentation

Mathlib.Algebra.Category.ModuleCat.Presheaf.Generator

Generators for the category of presheaves of modules #

In this file, given a presheaf of rings R on a category C, we study the set freeYoneda R of presheaves of modules of form (free R).obj (yoneda.obj X) for X : C, i.e. free presheaves of modules generated by the Yoneda presheaf represented by some X : C (the functor represented by such a presheaf of modules is the evaluation functor M ↦ M.obj (op X), see freeYonedaEquiv).

Lemmas PresheafOfModules.freeYoneda.isSeparating and PresheafOfModules.freeYoneda.isDetecting assert that this set freeYoneda R is separating and detecting. We deduce that if C : Type u is a small category, and R : Cᵒᵖ ⥤ RingCat.{u}, then PresheafOfModules.{u} R is a well-powered category.

Finally, given M : PresheafOfModules.{u} R, we consider the canonical epimorphism of presheaves of modules M.fromFreeYonedaCoproduct : M.freeYonedaCoproduct ⟶ M where M.freeYonedaCoproduct is a coproduct indexed by elements of M, i.e. pairs ⟨X : Cᵒᵖ, a : M.obj X⟩, of the objects (free R).obj (yoneda.obj X.unop). This is used in the definition PresheafOfModules.isColimitFreeYonedaCoproductsCokernelCofork in order to obtain that any presheaf of modules is a cokernel of a morphism between coproducts of objects in freeYoneda R.

noncomputable def PresheafOfModules.freeYonedaEquiv {C : Type u} [CategoryTheory.Category.{v, u} C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} {M : PresheafOfModules R} {X : C} :
((PresheafOfModules.free R).obj (CategoryTheory.yoneda.obj X) M) (M.obj (Opposite.op X))

When R : Cᵒᵖ ⥤ RingCat, M : PresheafOfModules R, and X : C, this is the bijection ((free R).obj (yoneda.obj X) ⟶ M) ≃ M.obj (Opposite.op X).

Equations
  • PresheafOfModules.freeYonedaEquiv = PresheafOfModules.freeHomEquiv.trans CategoryTheory.yonedaEquiv
Instances For
    theorem PresheafOfModules.freeYonedaEquiv_comp {C : Type u} [CategoryTheory.Category.{v, u} C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} {M N : PresheafOfModules R} {X : C} (m : (PresheafOfModules.free R).obj (CategoryTheory.yoneda.obj X) M) (φ : M N) :
    PresheafOfModules.freeYonedaEquiv (CategoryTheory.CategoryStruct.comp m φ) = (φ.app (Opposite.op X)) (PresheafOfModules.freeYonedaEquiv m)

    The set of PresheafOfModules.{v} R consisting of objects of the form (free R).obj (yoneda.obj X) for some X.

    Equations
    Instances For
      @[reducible, inline]

      The type of elements of a presheaf of modules. A term of this type is a pair ⟨X, a⟩ with X : Cᵒᵖ and a : M.obj X.

      Equations
      Instances For
        @[reducible, inline]

        Given a presheaf of modules M, this is a constructor for the type M.Elements.

        Equations
        Instances For
          @[reducible, inline]

          Given an element m : M.Elements of a presheaf of modules M, this is the free presheaf of modules on the Yoneda presheaf of types corresponding to the underlying object of m.

          Equations
          Instances For
            @[reducible, inline]
            noncomputable abbrev PresheafOfModules.Elements.fromFreeYoneda {C : Type u} [CategoryTheory.Category.{v, u} C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} {M : PresheafOfModules R} (m : M.Elements) :
            m.freeYoneda M

            Given an element m : M.Elements of a presheaf of modules M, this is the canonical morphism m.freeYoneda ⟶ M.

            Equations
            • m.fromFreeYoneda = PresheafOfModules.freeYonedaEquiv.symm m.snd
            Instances For
              @[reducible, inline]

              Given a presheaf of modules M, this is the coproduct of all free Yoneda presheaves m.freeYoneda for all m : M.Elements.

              Equations
              • M.freeYonedaCoproduct = PresheafOfModules.Elements.freeYoneda
              Instances For
                @[reducible, inline]
                noncomputable abbrev PresheafOfModules.ιFreeYonedaCoproduct {C : Type u} [CategoryTheory.SmallCategory C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} (M : PresheafOfModules R) (m : M.Elements) :
                m.freeYoneda M.freeYonedaCoproduct

                Given an element m : M.Elements of a presheaf of modules M, this is the canonical inclusion m.freeYoneda ⟶ M.freeYonedaCoproduct.

                Equations
                Instances For

                  Given a presheaf of modules M, this is the canonical morphism M.freeYonedaCoproduct ⟶ M.

                  Equations
                  Instances For
                    noncomputable def PresheafOfModules.freeYonedaCoproductMk {C : Type u} [CategoryTheory.SmallCategory C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} (M : PresheafOfModules R) (m : M.Elements) :
                    (M.freeYonedaCoproduct.obj m.fst)

                    Given an element m of a presheaf of modules M, this is the associated canonical section of the presheaf M.freeYonedaCoproduct over the object m.1.

                    Equations
                    Instances For
                      @[simp]
                      theorem PresheafOfModules.ι_fromFreeYonedaCoproduct {C : Type u} [CategoryTheory.SmallCategory C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} (M : PresheafOfModules R) (m : M.Elements) :
                      CategoryTheory.CategoryStruct.comp (M.ιFreeYonedaCoproduct m) M.fromFreeYonedaCoproduct = m.fromFreeYoneda
                      theorem PresheafOfModules.ι_fromFreeYonedaCoproduct_apply {C : Type u} [CategoryTheory.SmallCategory C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} (M : PresheafOfModules R) (m : M.Elements) (X : Cᵒᵖ) (x : (m.freeYoneda.obj X)) :
                      (M.fromFreeYonedaCoproduct.app X) (((M.ιFreeYonedaCoproduct m).app X) x) = (m.fromFreeYoneda.app X) x
                      @[simp]
                      theorem PresheafOfModules.fromFreeYonedaCoproduct_app_mk {C : Type u} [CategoryTheory.SmallCategory C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} (M : PresheafOfModules R) (m : M.Elements) :
                      (M.fromFreeYonedaCoproduct.app m.fst) (M.freeYonedaCoproductMk m) = m.snd
                      noncomputable def PresheafOfModules.toFreeYonedaCoproduct {C : Type u} [CategoryTheory.SmallCategory C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} (M : PresheafOfModules R) :
                      (CategoryTheory.Limits.kernel M.fromFreeYonedaCoproduct).freeYonedaCoproduct M.freeYonedaCoproduct

                      Given a presheaf of modules M, this is a morphism between coproducts of free presheaves of modules on Yoneda presheaves which gives a presentation of the module M, see isColimitFreeYonedaCoproductsCokernelCofork.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[reducible, inline]

                        (Colimit) cofork which gives a presentation of a presheaf of modules M using coproducts of free presheaves of modules on Yoneda presheaves.

                        Equations
                        Instances For

                          If M is a presheaf of modules, the cokernel cofork M.freeYonedaCoproductsCokernelCofork is a colimit, which means that M can be expressed as a cokernel of the morphism M.toFreeYonedaCoproduct between coproducts of free presheaves of modules on Yoneda presheaves.

                          Equations
                          • M.isColimitFreeYonedaCoproductsCokernelCofork = .gIsCokernel
                          Instances For