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_ι_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
{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))]
:
Equations
- ⋯ = ⋯
noncomputable 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))]
:
Equations
- One or more equations did not get rendered due to their size.
noncomputable 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]
:
Equations
- ⋯ = ⋯
noncomputable instance
ModuleCat.reflectsColimitsOfShape
(R : Type w)
[Ring R]
(J : Type u)
[CategoryTheory.Category.{v, u} J]
[CategoryTheory.Limits.HasColimitsOfShape J AddCommGrp]
:
Equations
- ModuleCat.reflectsColimitsOfShape R J = { reflectsColimit := fun {K : CategoryTheory.Functor J (ModuleCat R)} => inferInstance }
instance
ModuleCat.hasColimitsOfSize
(R : Type w)
[Ring R]
[CategoryTheory.Limits.HasColimitsOfSize.{v, u, w', w' + 1} AddCommGrp]
:
Equations
- ⋯ = ⋯
noncomputable instance
ModuleCat.forget₂PreservesColimitsOfShape
(R : Type w)
[Ring R]
(J : Type u)
[CategoryTheory.Category.{v, u} J]
[CategoryTheory.Limits.HasColimitsOfShape J AddCommGrp]
:
Equations
- ModuleCat.forget₂PreservesColimitsOfShape R J = { preservesColimit := fun {K : CategoryTheory.Functor J (ModuleCat R)} => inferInstance }
noncomputable instance
ModuleCat.forget₂PreservesColimitsOfSize
(R : Type w)
[Ring R]
[CategoryTheory.Limits.HasColimitsOfSize.{u, v, w', w' + 1} AddCommGrp]
:
Equations
- ModuleCat.forget₂PreservesColimitsOfSize R = { preservesColimitsOfShape := fun {J : Type ?u.29} [CategoryTheory.Category.{?u.30, ?u.29} J] => inferInstance }
noncomputable instance
ModuleCat.instPreservesColimitsOfSizeModuleCatMaxAddCommGrpForget₂OfHasColimitsOfSizeAddCommGrpMax
(R : Type w)
[Ring R]
[CategoryTheory.Limits.HasColimitsOfSize.{u, v, max w w', max (w + 1) (w' + 1)} AddCommGrpMax]
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯