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
(Impl) This new cone is used to construct the algebra structure
Equations
- One or more equations did not get rendered due to their size.
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 := ⋯ }
(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.
(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 := ⋯ }
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).
(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
(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.
(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 := ⋯ }
(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.
(Impl) Prove that the lifted cocone is colimiting.
Equations
- One or more equations did not get rendered due to their size.
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.27} [CategoryTheory.Category.{?u.28, ?u.27} 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.
Any monadic functor creates limits.
The forgetful functor from the Eilenberg-Moore category for a monad creates any colimit which the monad itself preserves.
A monadic functor creates any colimits of shapes it preserves.
Equations
- One or more equations did not get rendered due to their size.
A monadic functor creates colimits if it preserves colimits.
Equations
- One or more equations did not get rendered due to their size.
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.
(Impl) The natural transformation used to define the new cocone
(Impl) This new cocone is used to construct the coalgebra structure
Equations
- One or more equations did not get rendered due to their size.
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 := ⋯ }
(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.
(Impl) Prove that the lifted cocone is colimiting.
Equations
- One or more equations did not get rendered due to their size.
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).
(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
(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.
(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 := ⋯ }
(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.
(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 := ⋯ }
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.27} [CategoryTheory.Category.{?u.28, ?u.27} 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.
Any comonadic functor creates colimits.
The forgetful functor from the Eilenberg-Moore category for a comonad creates any limit which the comonad itself preserves.
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 }
A comonadic functor creates limits if it preserves limits.
Equations
- One or more equations did not get rendered due to their size.
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.