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
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable def ModuleCat.freeMk {R : Type u} [Ring R] {X : Type u} (x : X) :
    ((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 : (free R).obj X M} (h : ∀ (x : X), f.hom (freeMk x) = g.hom (freeMk x)) :
      f = g
      noncomputable def ModuleCat.freeDesc {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} (f : X M) :
      (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) :
        (freeDesc f).hom (freeMk x) = f x
        @[simp]
        theorem ModuleCat.free_map_apply {R : Type u} [Ring R] {X Y : Type u} (f : XY) (x : X) :
        ((free R).map f).hom (freeMk x) = freeMk (f x)
        def ModuleCat.freeHomEquiv {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} :
        ((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
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem ModuleCat.freeHomEquiv_apply {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} (φ : (free R).obj X M) (x : X) :
          freeHomEquiv φ x = φ.hom (freeMk x)
          @[simp]
          theorem ModuleCat.freeHomEquiv_symm_apply {R : Type u} [Ring R] {X : Type u} {M : ModuleCat R} (ψ : XM) :

          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) :
            (adj R).homEquiv X M = freeHomEquiv
            def ModuleCat.FreeMonoidal.εIso (R : Type u) [CommRing R] :
            𝟙_ (ModuleCat R) (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
              @[simp]
              theorem ModuleCat.FreeMonoidal.εIso_inv_freeMk (R : Type u) [CommRing R] (x : PUnit.{u + 1}) :
              (εIso R).inv.hom (freeMk x) = 1

              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
                @[simp]
                theorem ModuleCat.FreeMonoidal.μIso_hom_freeMk_tmul_freeMk (R : Type u) [CommRing R] {X Y : Type u} (x : X) (y : Y) :
                (μIso R X Y).hom.hom (freeMk x ⊗ₜ[R] freeMk y) = freeMk (x, y)
                instance ModuleCat.instMonoidalFree (R : Type u) [CommRing R] :
                (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.
                @[simp]
                theorem ModuleCat.free_μ_freeMk_tmul_freeMk (R : Type u) [CommRing R] {X Y : Type u} (x : X) (y : Y) :
                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) :
                  Free R 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
                    instance CategoryTheory.Free.instLinear (R : Type u_1) [CommRing R] (C : Type u) [Category.{v, u} C] :
                    Linear R (Free R C)
                    Equations
                    theorem CategoryTheory.Free.single_comp_single (R : Type u_1) [CommRing R] (C : Type u) [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : Y Z) (r s : R) :

                    A category embeds into its R-linear completion.

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Free.embedding_obj (R : Type u_1) [CommRing R] (C : Type u) [Category.{v, u} C] (X : C) :
                      (embedding R C).obj X = X
                      @[simp]
                      theorem CategoryTheory.Free.embedding_map (R : Type u_1) [CommRing R] (C : Type u) [Category.{v, u} C] {x✝ x✝¹ : C} (f : x✝ x✝¹) :
                      (embedding R C).map f = Finsupp.single f 1
                      def CategoryTheory.Free.lift (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] (F : Functor C D) :
                      Functor (Free R C) D

                      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_obj (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] (F : Functor C D) (X : Free R C) :
                        (lift R F).obj X = F.obj X
                        @[simp]
                        theorem CategoryTheory.Free.lift_map (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] (F : Functor C D) {x✝ x✝¹ : Free R C} (f : x✝ x✝¹) :
                        (lift R F).map f = Finsupp.sum f fun (f' : x✝ x✝¹) (r : R) => r F.map f'
                        theorem CategoryTheory.Free.lift_map_single (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] (F : Functor C D) {X Y : C} (f : X Y) (r : R) :
                        (lift R F).map (Finsupp.single f r) = r F.map f
                        instance CategoryTheory.Free.lift_additive (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] (F : Functor C D) :
                        (lift R F).Additive
                        instance CategoryTheory.Free.lift_linear (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] (F : Functor C D) :
                        def CategoryTheory.Free.embeddingLiftIso (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] (F : Functor C D) :
                        (embedding R C).comp (lift R F) 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
                          def CategoryTheory.Free.ext (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] {F G : Functor (Free R C) D} [F.Additive] [Functor.Linear R F] [G.Additive] [Functor.Linear R G] (α : (embedding R C).comp F (embedding R C).comp G) :
                          F G

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

                          Equations
                          Instances For
                            def CategoryTheory.Free.liftUnique (R : Type u_1) [CommRing R] {C : Type u} [Category.{v, u} C] {D : Type u} [Category.{v, u} D] [Preadditive D] [Linear R D] (F : Functor C D) (L : Functor (Free R C) D) [L.Additive] [Functor.Linear R L] (α : (embedding R C).comp L F) :
                            L lift R F

                            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