Limits and colimits in the category of (co)algebras #
This file shows that the forgetful functor forget T : Algebra T ⥤ C
for a monad T : C ⥤ C
creates limits and creates any colimits which T
preserves.
This is used to show that Algebra T
has any limits which C
has, and any colimits which C
has
and T
preserves.
This is generalised to the case of a monadic functor D ⥤ C
.
Dually, this file shows that the forgetful functor forget T : Coalgebra T ⥤ C
for a
comonad T : C ⥤ C
creates colimits and creates any limits which T
preserves.
This is used to show that Coalgebra T
has any colimits which C
has, and any limits which C
has
and T
preserves.
This is generalised to the case of a comonadic functor D ⥤ C
.
(Impl) The natural transformation used to define the new cone
Equations
- CategoryTheory.Monad.ForgetCreatesLimits.γ D = { app := fun (j : J) => (D.obj j).a, naturality := ⋯ }
Instances For
(Impl) This new cone is used to construct the algebra structure
Equations
- One or more equations did not get rendered due to their size.
Instances For
The algebra structure which will be the apex of the new limit cone for D
.
Equations
- CategoryTheory.Monad.ForgetCreatesLimits.conePoint D c t = { A := c.pt, a := t.lift (CategoryTheory.Monad.ForgetCreatesLimits.newCone D c), unit := ⋯, assoc := ⋯ }
Instances For
(Impl) Construct the lifted cone in Algebra T
which will be limiting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(Impl) Prove that the lifted cone is limiting.
Equations
- CategoryTheory.Monad.ForgetCreatesLimits.liftedConeIsLimit D c t = { lift := fun (s : CategoryTheory.Limits.Cone D) => { f := t.lift (T.forget.mapCone s), h := ⋯ }, fac := ⋯, uniq := ⋯ }
Instances For
The forgetful functor from the Eilenberg-Moore category creates limits.
Equations
- One or more equations did not get rendered due to their size.
D ⋙ forget T
has a limit, then D
has a limit.
(Impl)
The natural transformation given by the algebra structure maps, used to construct a cocone c
with
point colimit (D ⋙ forget T)
.
Equations
- CategoryTheory.Monad.ForgetCreatesColimits.γ = { app := fun (j : J) => (D.obj j).a, naturality := ⋯ }
Instances For
(Impl)
A cocone for the diagram (D ⋙ forget T) ⋙ T
found by composing the natural transformation γ
with the colimiting cocone for D ⋙ forget T
.
Equations
- CategoryTheory.Monad.ForgetCreatesColimits.newCocone c = { pt := c.pt, ι := CategoryTheory.CategoryStruct.comp CategoryTheory.Monad.ForgetCreatesColimits.γ c.ι }
Instances For
(Impl)
Define the map λ : TL ⟶ L
, which will serve as the structure of the coalgebra on L
, and
we will show is the colimiting object. We use the cocone constructed by c
and the fact that
T
preserves colimits to produce this morphism.
Equations
Instances For
(Impl) The key property defining the map λ : TL ⟶ L
.
(Impl)
Construct the colimiting algebra from the map λ : TL ⟶ L
given by lambda
. We are required to
show it satisfies the two algebra laws, which follow from the algebra laws for the image of D
and
our commuting
lemma.
Equations
- CategoryTheory.Monad.ForgetCreatesColimits.coconePoint c t = { A := c.pt, a := CategoryTheory.Monad.ForgetCreatesColimits.lambda c t, unit := ⋯, assoc := ⋯ }
Instances For
(Impl) Construct the lifted cocone in Algebra T
which will be colimiting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(Impl) Prove that the lifted cocone is colimiting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The forgetful functor from the Eilenberg-Moore category for a monad creates any colimit which the monad itself preserves.
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.Monad.forgetCreatesColimitsOfShape = { CreatesColimit := fun {K : CategoryTheory.Functor J T.Algebra} => inferInstance }
Equations
- CategoryTheory.Monad.forgetCreatesColimits = { CreatesColimitsOfShape := fun {J : Type ?u.34} [CategoryTheory.Category.{?u.35, ?u.34} J] => inferInstance }
For D : J ⥤ Algebra T
, D ⋙ forget T
has a colimit, then D
has a colimit provided colimits
of shape J
are preserved by T
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Any monadic functor creates limits.
Equations
Instances For
The forgetful functor from the Eilenberg-Moore category for a monad creates any colimit which the monad itself preserves.
Equations
Instances For
A monadic functor creates any colimits of shapes it preserves.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A monadic functor creates colimits if it preserves colimits.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If C
has limits of shape J
then any reflective subcategory has limits of shape J
.
If C
has limits then any reflective subcategory has limits.
If C
has colimits of shape J
then any reflective subcategory has colimits of shape J
.
If C
has colimits then any reflective subcategory has colimits.
The reflector always preserves terminal objects. Note this in general doesn't apply to any other limit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(Impl) The natural transformation used to define the new cocone
Equations
- CategoryTheory.Comonad.ForgetCreatesColimits'.γ D = { app := fun (j : J) => (D.obj j).a, naturality := ⋯ }
Instances For
(Impl) This new cocone is used to construct the coalgebra structure
Equations
- One or more equations did not get rendered due to their size.
Instances For
The coalgebra structure which will be the point of the new colimit cone for D
.
Equations
- CategoryTheory.Comonad.ForgetCreatesColimits'.coconePoint D c t = { A := c.pt, a := t.desc (CategoryTheory.Comonad.ForgetCreatesColimits'.newCocone D c), counit := ⋯, coassoc := ⋯ }
Instances For
(Impl) Construct the lifted cocone in Coalgebra T
which will be colimiting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(Impl) Prove that the lifted cocone is colimiting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The forgetful functor from the Eilenberg-Moore category creates colimits.
Equations
- One or more equations did not get rendered due to their size.
If D ⋙ forget T
has a colimit, then D
has a colimit.
(Impl)
The natural transformation given by the coalgebra structure maps, used to construct a cone c
with
point limit (D ⋙ forget T)
.
Equations
- CategoryTheory.Comonad.ForgetCreatesLimits'.γ = { app := fun (j : J) => (D.obj j).a, naturality := ⋯ }
Instances For
(Impl)
A cone for the diagram (D ⋙ forget T) ⋙ T
found by composing the natural transformation γ
with the limiting cone for D ⋙ forget T
.
Equations
- CategoryTheory.Comonad.ForgetCreatesLimits'.newCone c = { pt := c.pt, π := CategoryTheory.CategoryStruct.comp c.π CategoryTheory.Comonad.ForgetCreatesLimits'.γ }
Instances For
(Impl)
Define the map λ : L ⟶ TL
, which will serve as the structure of the algebra on L
, and
we will show is the limiting object. We use the cone constructed by c
and the fact that
T
preserves limits to produce this morphism.
Equations
Instances For
(Impl) The key property defining the map λ : L ⟶ TL
.
(Impl)
Construct the limiting coalgebra from the map λ : L ⟶ TL
given by lambda
. We are required to
show it satisfies the two coalgebra laws, which follow from the coalgebra laws for the image of D
and our commuting
lemma.
Equations
- CategoryTheory.Comonad.ForgetCreatesLimits'.conePoint c t = { A := c.pt, a := CategoryTheory.Comonad.ForgetCreatesLimits'.lambda c t, counit := ⋯, coassoc := ⋯ }
Instances For
(Impl) Construct the lifted cone in Coalgebra T
which will be limiting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(Impl) Prove that the lifted cone is limiting.
Equations
- CategoryTheory.Comonad.ForgetCreatesLimits'.liftedConeIsLimit c t = { lift := fun (s : CategoryTheory.Limits.Cone D) => { f := t.lift (T.forget.mapCone s), h := ⋯ }, fac := ⋯, uniq := ⋯ }
Instances For
The forgetful functor from the Eilenberg-Moore category for a comonad creates any limit which the comonad itself preserves.
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.Comonad.forgetCreatesLimitsOfShape = { CreatesLimit := fun {K : CategoryTheory.Functor J T.Coalgebra} => inferInstance }
Equations
- CategoryTheory.Comonad.forgetCreatesLimits = { CreatesLimitsOfShape := fun {J : Type ?u.34} [CategoryTheory.Category.{?u.35, ?u.34} J] => inferInstance }
For D : J ⥤ Coalgebra T
, D ⋙ forget T
has a limit, then D
has a limit provided limits
of shape J
are preserved by T
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Any comonadic functor creates colimits.
Equations
Instances For
The forgetful functor from the Eilenberg-Moore category for a comonad creates any limit which the comonad itself preserves.
Equations
Instances For
A comonadic functor creates any limits of shapes it preserves.
Equations
- CategoryTheory.comonadicCreatesLimitsOfShapeOfPreservesLimitsOfShape R = { CreatesLimit := fun {K : CategoryTheory.Functor J D} => CategoryTheory.comonadicCreatesLimitOfPreservesLimit R K }
Instances For
A comonadic functor creates limits if it preserves limits.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If C
has colimits of shape J
then any coreflective subcategory has colimits of shape J
.
If C
has colimits then any coreflective subcategory has colimits.
If C
has limits of shape J
then any coreflective subcategory has limits of shape J
.
If C
has limits then any coreflective subcategory has limits.
The coreflector always preserves initial objects. Note this in general doesn't apply to any other colimit.
Equations
- One or more equations did not get rendered due to their size.