The category of (commutative) (additive) monoids has all limits
Further, these limits are preserved by the forgetful functor --- that is, the underlying types are just the limits in the category of types.
Equations
- Mon.monoid_obj F j = id (F.obj j).monoid
The flat sections of a functor into AddMon
form an additive submonoid of all sections.
The flat sections of a functor into Mon
form a submonoid of all sections.
Equations
- Mon.sections_submonoid F = {carrier := (F ⋙ category_theory.forget Mon).sections, one_mem' := _, mul_mem' := _}
Equations
limit.π (F ⋙ forget AddMon) j
as an add_monoid_hom
.
limit.π (F ⋙ forget Mon) j
as a monoid_hom
.
Equations
- Mon.limit_π_monoid_hom F j = {to_fun := (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget Mon)).π.app j, map_one' := _, map_mul' := _}
Construction of a limit cone in Mon
.
(Internal use only; use the limits API.)
Equations
- Mon.has_limits.limit_cone F = {X := Mon.of (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget Mon)).X (Mon.limit_monoid F), π := {app := Mon.limit_π_monoid_hom F, naturality' := _}}
(Internal use only; use the limits API.)
Witness that the limit cone in Mon
is a limit cone.
(Internal use only; use the limits API.)
Equations
- Mon.has_limits.limit_cone_is_limit F = category_theory.limits.is_limit.of_faithful (category_theory.forget Mon) (category_theory.limits.types.limit_cone_is_limit (F ⋙ category_theory.forget Mon)) (λ (s : category_theory.limits.cone F), {to_fun := λ (v : ((category_theory.forget Mon).map_cone s).X), ⟨λ (j : J), ((category_theory.forget Mon).map_cone s).π.app j v, _⟩, map_one' := _, map_mul' := _}) _
(Internal use only; use the limits API.)
The category of monoids has all limits.
The forgetful functor from monoids to types preserves all limits. (That is, the underlying types could have been computed instead as limits in the category of types.)
Equations
- Mon.forget_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ Mon), category_theory.limits.preserves_limit_of_preserves_limit_cone (Mon.has_limits.limit_cone_is_limit F) (category_theory.limits.types.limit_cone_is_limit (F ⋙ category_theory.forget Mon))}}
Equations
- CommMon.comm_monoid_obj F j = id (F.obj j).comm_monoid
Equations
We show that the forgetful functor CommMon ⥤ Mon
creates limits.
All we need to do is notice that the limit point has a comm_monoid
instance available,
and then reuse the existing limit.
Equations
- CommMon.category_theory.creates_limit F = category_theory.creates_limit_of_reflects_iso (λ (c' : category_theory.limits.cone (F ⋙ category_theory.forget₂ CommMon Mon)) (t : category_theory.limits.is_limit c'), {to_liftable_cone := {lifted_cone := {X := CommMon.of (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget CommMon)).X (CommMon.limit_comm_monoid F), π := {app := Mon.limit_π_monoid_hom (F ⋙ category_theory.forget₂ CommMon Mon), naturality' := _}}, valid_lift := (Mon.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ CommMon Mon)).unique_up_to_iso t}, makes_limit := category_theory.limits.is_limit.of_faithful (category_theory.forget₂ CommMon Mon) (Mon.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ CommMon Mon)) (λ (s : category_theory.limits.cone F), {to_fun := λ (v : ((category_theory.forget Mon).map_cone ((category_theory.forget₂ CommMon Mon).map_cone s)).X), ⟨λ (j : J), ((category_theory.forget Mon).map_cone ((category_theory.forget₂ CommMon Mon).map_cone s)).π.app j v, _⟩, map_one' := _, map_mul' := _}) _})
A choice of limit cone for a functor into CommMon
.
(Generally, you'll just want to use limit F
.)
A choice of limit cone for a functor into CommMon
. (Generally, you'll just want to use limit F
.)
The chosen cone is a limit cone. (Generally, you'll just want to use limit.cone F
.)
The chosen cone is a limit cone.
(Generally, you'll just want to use limit.cone F
.)
The category of commutative monoids has all limits.
The forgetful functor from commutative monoids to monoids preserves all limits. (That is, the underlying monoid could have been computed instead as limits in the category of monoids.)
Equations
- CommMon.forget₂_Mon_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ CommMon), category_theory.preserves_limit_of_creates_limit_and_has_limit F (category_theory.forget₂ CommMon Mon)}}
The forgetful functor from commutative monoids to types preserves all limits. (That is, the underlying types could have been computed instead as limits in the category of types.)
Equations
- CommMon.forget_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ CommMon), category_theory.limits.comp_preserves_limit (category_theory.forget₂ CommMon Mon) (category_theory.forget Mon)}}