Documentation

Mathlib.Algebra.Category.ModuleCat.Adjunctions

The functor of forming finitely supported functions on a type with values in a [Ring R] is the left adjoint of the forgetful functor from R-modules to types.

@[simp]
theorem ModuleCat.free_map (R : Type u) [Ring R] {X : Type u} {Y : Type u} (f : X Y) :
(ModuleCat.free R).toPrefunctor.map f = Finsupp.lmapDomain R R f
@[simp]
theorem ModuleCat.free_obj (R : Type u) [Ring R] (X : Type u) :
(ModuleCat.free R).toPrefunctor.obj X = ModuleCat.of R (X →₀ R)

The free functor Type u ⥤ ModuleCat R sending a type X to the free R-module with generators x : X, implemented as the type X →₀ R.

Equations
Instances For

    The free-forgetful adjunction for R-modules.

    Equations
    Instances For
      def ModuleCat.Free.ε (R : Type u) [CommRing R] :
      𝟙_ (ModuleCat R) (ModuleCat.free R).toPrefunctor.obj (𝟙_ (Type u))

      (Implementation detail) The unitor for Free R.

      Equations
      Instances For
        def ModuleCat.Free.μ (R : Type u) [CommRing R] (α : Type u) (β : Type u) :
        CategoryTheory.MonoidalCategory.tensorObj ((ModuleCat.free R).toPrefunctor.obj α) ((ModuleCat.free R).toPrefunctor.obj β) (ModuleCat.free R).toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj α β)

        (Implementation detail) The tensorator for Free R.

        Equations
        Instances For
          theorem ModuleCat.Free.μ_natural (R : Type u) [CommRing R] {X : Type u} {Y : Type u} {X' : Type u} {Y' : Type u} (f : X Y) (g : X' Y') :

          The free functor Type u ⥤ ModuleCat R, as a monoidal functor.

          Equations
          Instances For
            def CategoryTheory.Free :
            Type u_1 → Type u → Type u

            Free R C is a type synonym for C, which, given [CommRing R] and [Category C], we will equip with a category structure where the morphisms are formal R-linear combinations of the morphisms in C.

            Equations
            Instances For
              def CategoryTheory.Free.of (R : Type u_1) {C : Type u} (X : C) :

              Consider an object of C as an object of the R-linear completion.

              It may be preferable to use (Free.embedding R C).obj X instead; this functor can also be used to lift morphisms.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Free.embedding_obj (R : Type u_1) [CommRing R] (C : Type u) [CategoryTheory.Category.{v, u} C] (X : C) :
                (CategoryTheory.Free.embedding R C).toPrefunctor.obj X = X
                @[simp]
                theorem CategoryTheory.Free.embedding_map (R : Type u_1) [CommRing R] (C : Type u) [CategoryTheory.Category.{v, u} C] {X : C} {Y : C} (f : X Y) :
                (CategoryTheory.Free.embedding R C).toPrefunctor.map f = Finsupp.single f 1

                A category embeds into its R-linear completion.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.Free.lift_map (R : Type u_1) [CommRing R] {C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u} [CategoryTheory.Category.{v, u} D] [CategoryTheory.Preadditive D] [CategoryTheory.Linear R D] (F : CategoryTheory.Functor C D) {X : CategoryTheory.Free R C} {Y : CategoryTheory.Free R C} (f : X Y) :
                  (CategoryTheory.Free.lift R F).toPrefunctor.map f = Finsupp.sum f fun (f' : X Y) (r : R) => r F.toPrefunctor.map f'

                  A functor to an R-linear category lifts to a functor from its R-linear completion.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem CategoryTheory.Free.lift_map_single (R : Type u_1) [CommRing R] {C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u} [CategoryTheory.Category.{v, u} D] [CategoryTheory.Preadditive D] [CategoryTheory.Linear R D] (F : CategoryTheory.Functor C D) {X : C} {Y : C} (f : X Y) (r : R) :
                    (CategoryTheory.Free.lift R F).toPrefunctor.map (Finsupp.single f r) = r F.toPrefunctor.map f

                    The embedding into the R-linear completion, followed by the lift, is isomorphic to the original functor.

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