Documentation

Mathlib.Algebra.Category.FGModuleCat.Basic

The category of finitely generated modules over a ring #

This introduces FGModuleCat R, the category of finitely generated modules over a ring R. It is implemented as a full subcategory on a subtype of ModuleCat R.

When K is a field, FGModuleCatCat K is the category of finite dimensional vector spaces over K.

We first create the instance as a preadditive category. When R is commutative we then give the structure as an R-linear monoidal category. When R is a field we give it the structure of a closed monoidal category and then as a right-rigid monoidal category.

Future work #

def FGModuleCat (R : Type u) [Ring R] :
Type (u + 1)

Define FGModuleCat as the subtype of ModuleCat.{u} R of finitely generated modules.

Equations
Instances For
    def FGModuleCat.carrier {R : Type u} [Ring R] (M : FGModuleCat R) :

    A synonym for M.obj.carrier, which we can mark with @[coe].

    Equations
    • M = M.obj
    Instances For
      Equations
      • instCoeSortFGModuleCatType = { coe := FGModuleCat.carrier }
      @[simp]
      theorem obj_carrier {R : Type u} [Ring R] (M : FGModuleCat R) :
      M.obj = M
      instance instAddCommGroupCarrier {R : Type u} [Ring R] (M : FGModuleCat R) :
      Equations
      Equations
      • instLargeCategoryFGModuleCat = id inferInstance
      Equations
      • instFunLikeHomFGModuleCatToQuiverToCategoryStructInstLargeCategoryFGModuleCatCarrier = LinearMap.instFunLike
      Equations
      • instConcreteCategoryFGModuleCatInstLargeCategoryFGModuleCat = id inferInstance
      Equations
      • instPreadditiveFGModuleCatInstLargeCategoryFGModuleCat = id inferInstance
      instance FGModuleCat.finite (R : Type u) [Ring R] (V : FGModuleCat R) :
      Equations
      Equations
      def FGModuleCat.of (R : Type u) [Ring R] (V : Type u) [AddCommGroup V] [Module R V] [Module.Finite R V] :

      Lift an unbundled finitely generated module to FGModuleCat R.

      Equations
      Instances For
        def FGModuleCat.isoToLinearEquiv {R : Type u} [Ring R] {V : FGModuleCat R} {W : FGModuleCat R} (i : V W) :
        V ≃ₗ[R] W

        Converts and isomorphism in the category FGModuleCat R to a LinearEquiv between the underlying modules.

        Equations
        Instances For
          @[simp]
          theorem LinearEquiv.toFGModuleCatIso_inv {R : Type u} [Ring R] {V : Type u} {W : Type u} [AddCommGroup V] [Module R V] [Module.Finite R V] [AddCommGroup W] [Module R W] [Module.Finite R W] (e : V ≃ₗ[R] W) :
          @[simp]
          theorem LinearEquiv.toFGModuleCatIso_hom {R : Type u} [Ring R] {V : Type u} {W : Type u} [AddCommGroup V] [Module R V] [Module.Finite R V] [AddCommGroup W] [Module R W] [Module.Finite R W] (e : V ≃ₗ[R] W) :
          def LinearEquiv.toFGModuleCatIso {R : Type u} [Ring R] {V : Type u} {W : Type u} [AddCommGroup V] [Module R V] [Module.Finite R V] [AddCommGroup W] [Module R W] [Module.Finite R W] (e : V ≃ₗ[R] W) :

          Converts a LinearEquiv to an isomorphism in the category FGModuleCat R.

          Equations
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem FGModuleCat.tensorUnit_obj (R : Type u) [CommRing R] :
            (𝟙_ (FGModuleCat R)).obj = 𝟙_ (ModuleCat R)
            Equations
            Equations
            • One or more equations did not get rendered due to their size.
            Equations
            • One or more equations did not get rendered due to their size.
            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem FGModuleCat.ihom_obj (K : Type u) [Field K] (V : FGModuleCat K) (W : FGModuleCat K) :
            (CategoryTheory.ihom V).toPrefunctor.obj W = FGModuleCat.of K (V →ₗ[K] W)

            The dual module is the dual in the rigid monoidal category FGModuleCat K.

            Equations
            Instances For

              The evaluation morphism is given by the contraction map.

              Equations
              Instances For
                @[simp]
                theorem FGModuleCat.FGModuleCatEvaluation_apply (K : Type u) [Field K] (V : FGModuleCat K) (f : (FGModuleCat.FGModuleCatDual K V)) (x : V) :
                (FGModuleCat.FGModuleCatEvaluation K V) (f ⊗ₜ[K] x) = f.toAddHom.toFun x