The category of finitely generated modules over a ring #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This introduces fgModule R
, the category of finitely generated modules over a ring R
.
It is implemented as a full subcategory on a subtype of Module R
.
When K
is a field, fgModule 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 #
- Show that
fgModule R
is abelian whenR
is (left)-noetherian.
Define fgModule
as the subtype of Module.{u} R
of finitely generated modules.
Equations
- fgModule R = category_theory.full_subcategory (λ (V : Module R), module.finite R ↥V)
Instances for fgModule
- fgModule.large_category
- fgModule.concrete_category
- fgModule.preadditive
- fgModule.inhabited
- fgModule.Module.category_theory.has_forget₂
- fgModule.category_theory.linear
- fgModule.category_theory.monoidal_category
- fgModule.category_theory.symmetric_category
- fgModule.category_theory.monoidal_preadditive
- fgModule.category_theory.monoidal_linear
- fgModule.category_theory.monoidal_closed
- fgModule.right_rigid_category
- fgModule.category_theory.limits.has_finite_limits
Equations
- fgModule.inhabited R = {default := {obj := Module.of R R semiring.to_module, property := _}}
Lift an unbundled finitely generated module to fgModule R
.
Equations
Equations
- fgModule.category_theory.forget₂.category_theory.full R = {preimage := λ (X Y : fgModule R) (f : (category_theory.forget₂ (fgModule R) (Module R)).obj X ⟶ (category_theory.forget₂ (fgModule R) (Module R)).obj Y), f, witness' := _}
Converts and isomorphism in the category fgModule R
to a linear_equiv
between the underlying
modules.
Equations
- fgModule.iso_to_linear_equiv i = ((category_theory.forget₂ (fgModule R) (Module R)).map_iso i).to_linear_equiv
Converts a linear_equiv
to an isomorphism in the category fgModule R
.
Equations
- e.to_fgModule_iso = {hom := e.to_linear_map, inv := e.symm.to_linear_map, hom_inv_id' := _, inv_hom_id' := _}
Equations
- fgModule.category_theory.linear R = category_theory.linear.full_subcategory (λ (V : Module R), module.finite R ↥V)
Equations
Equations
The forgetful functor fgModule R ⥤ Module R
as a monoidal functor.
Equations
Equations
The dual module is the dual in the rigid monoidal category fgModule K
.
Equations
- fgModule.fgModule_dual K V = {obj := Module.of K (module.dual K ↥(V.obj)) linear_map.module, property := _}
Instances for fgModule.fgModule_dual
The coevaluation map is defined in linear_algebra.coevaluation
.
Equations
- fgModule.fgModule_coevaluation K V = coevaluation K ↥(V.obj)
The evaluation morphism is given by the contraction map.
Equations
- fgModule.fgModule_evaluation K V = contract_left K ↥(V.obj)
Equations
- fgModule.exact_pairing K V = {coevaluation := fgModule.fgModule_coevaluation K V, evaluation := fgModule.fgModule_evaluation K V, coevaluation_evaluation' := _, evaluation_coevaluation' := _}