HepLean 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.

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
    noncomputable def ModuleCat.freeMk {R : Type u} [Ring R] {X : Type u} (x : X) :
    ((ModuleCat.free R).obj X)

    Constructor for elements in the module (free R).obj X.

    Equations
    Instances For
      theorem ModuleCat.free_hom_ext {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} {f g : (ModuleCat.free R).obj X M} (h : ∀ (x : X), f (ModuleCat.freeMk x) = g (ModuleCat.freeMk x)) :
      f = g
      noncomputable def ModuleCat.freeDesc {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} (f : X M) :
      (ModuleCat.free R).obj X M

      The morphism of modules (free R).obj X ⟶ M corresponding to a map f : X ⟶ M.

      Equations
      Instances For
        @[simp]
        theorem ModuleCat.freeDesc_apply {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} (f : X M) (x : X) :
        @[simp]
        theorem ModuleCat.free_map_apply {R : Type u} [Ring R] {X Y : Type u} (f : XY) (x : X) :
        def ModuleCat.freeHomEquiv {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} :
        ((ModuleCat.free R).obj X M) (XM)

        The bijection ((free R).obj X ⟶ M) ≃ (X → M) when X is a type and M a module.

        Equations
        Instances For
          @[simp]
          theorem ModuleCat.freeHomEquiv_apply {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} (φ : (ModuleCat.free R).obj X M) (x : X) :
          ModuleCat.freeHomEquiv φ x = φ (ModuleCat.freeMk x)
          @[simp]
          theorem ModuleCat.freeHomEquiv_symm_apply {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} (ψ : XM) :
          ModuleCat.freeHomEquiv.symm ψ = ModuleCat.freeDesc ψ

          The free-forgetful adjunction for R-modules.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem ModuleCat.adj_homEquiv (R : Type u) [Ring R] (X : Type u) (M : ModuleCat R) :
            (ModuleCat.adj R).homEquiv X M = ModuleCat.freeHomEquiv
            Equations
            • =
            def ModuleCat.FreeMonoidal.εIso (R : Type u) [CommRing R] :
            𝟙_ (ModuleCat R) (ModuleCat.free R).obj (𝟙_ (Type u))

            The canonical isomorphism 𝟙_ (ModuleCat R) ≅ (free R).obj (𝟙_ (Type u)). (This should not be used directly: it is part of the implementation of the monoidal structure on the functor free R.)

            Equations
            Instances For

              The canonical isomorphism (free R).obj X ⊗ (free R).obj Y ≅ (free R).obj (X ⊗ Y) for two types X and Y. (This should not be used directly: it is is part of the implementation of the monoidal structure on the functor free R.)

              Equations
              Instances For
                instance ModuleCat.instMonoidalFree (R : Type u) [CommRing R] :
                (ModuleCat.free R).Monoidal

                The free functor Type u ⥤ ModuleCat R is a monoidal functor.

                Equations
                • One or more equations did not get rendered due to their size.
                def CategoryTheory.Free :
                Type u_1 → (C : 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
                    Equations
                    Equations

                    A category embeds into its R-linear completion.

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Free.embedding_map (R : Type u_1) [CommRing R] (C : Type u) [CategoryTheory.Category.{v, u} C] {x✝ x✝¹ : C} (f : x✝ x✝¹) :

                      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
                        @[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✝ x✝¹ : CategoryTheory.Free R C} (f : x✝ x✝¹) :
                        (CategoryTheory.Free.lift R F).map f = Finsupp.sum f fun (f' : x✝ x✝¹) (r : R) => r F.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

                          Two R-linear functors out of the R-linear completion are isomorphic iff their compositions with the embedding functor are isomorphic.

                          Equations
                          Instances For

                            Free.lift is unique amongst R-linear functors Free R C ⥤ D which compose with embedding ℤ C to give the original functor.

                            Equations
                            Instances For