The category of R-modules has all colimits. #
From the existence of colimits in AddCommGrp
, we deduce the existence of colimits
in ModuleCat R
. This way, we get for free that the functor
forget₂ (ModuleCat R) AddCommGrp
commutes with colimits.
Note that finite colimits can already be obtained from the instance Abelian (Module R)
.
TODO:
In fact, in ModuleCat R
there is a much nicer model of colimits as quotients
of finitely supported functions, and we really should implement this as well.
noncomputable def
ModuleCat.HasColimit.coconePointSMul
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
R →+* CategoryTheory.End (CategoryTheory.Limits.colimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp)))
The induced scalar multiplication on
colimit (F ⋙ forget₂ _ AddCommGrp)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
ModuleCat.HasColimit.coconePointSMul_apply
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
(r : R)
:
(ModuleCat.HasColimit.coconePointSMul F) r = CategoryTheory.Limits.colimMap { app := fun (j : J) => (F.obj j).smul r, naturality := ⋯ }
noncomputable def
ModuleCat.HasColimit.colimitCocone
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
The cocone for F
constructed from the colimit of
(F ⋙ forget₂ (ModuleCat R) AddCommGrp)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
ModuleCat.HasColimit.colimitCocone_pt_carrier
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
@[simp]
theorem
ModuleCat.HasColimit.colimitCocone_ι_app
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
(j : J)
:
(ModuleCat.HasColimit.colimitCocone F).ι.app j = ModuleCat.homMk (CategoryTheory.Limits.colimit.ι (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp)) j) ⋯
@[simp]
theorem
ModuleCat.HasColimit.colimitCocone_pt_isAddCommGroup
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
(ModuleCat.HasColimit.colimitCocone F).pt.isAddCommGroup = ModuleCat.instAddCommGroupαMkOfSMul' (ModuleCat.HasColimit.coconePointSMul F)
@[simp]
theorem
ModuleCat.HasColimit.colimitCocone_pt_isModule
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
noncomputable def
ModuleCat.HasColimit.isColimitColimitCocone
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
The cocone for F
constructed from the colimit of
(F ⋙ forget₂ (ModuleCat R) AddCommGrp)
is a colimit cocone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
ModuleCat.HasColimit.instHasColimit
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
instance
ModuleCat.HasColimit.instPreservesColimitAddCommGrpForget₂
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
instance
ModuleCat.HasColimit.reflectsColimit
{R : Type w}
[Ring R]
{J : Type u}
[CategoryTheory.Category.{v, u} J]
(F : CategoryTheory.Functor J (ModuleCat R))
[CategoryTheory.Limits.HasColimit (F.comp (CategoryTheory.forget₂ (ModuleCat R) AddCommGrp))]
:
instance
ModuleCat.hasColimitsOfShape
(R : Type w)
[Ring R]
(J : Type u)
[CategoryTheory.Category.{v, u} J]
[CategoryTheory.Limits.HasColimitsOfShape J AddCommGrp]
:
instance
ModuleCat.reflectsColimitsOfShape
(R : Type w)
[Ring R]
(J : Type u)
[CategoryTheory.Category.{v, u} J]
[CategoryTheory.Limits.HasColimitsOfShape J AddCommGrp]
: