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.