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 Mon
form a submonoid of all sections.
Equations
- Mon.sections_submonoid F = {carrier := (F ⋙ category_theory.forget Mon).sections, one_mem' := _, mul_mem' := _}
The flat sections of a functor into AddMon
form an additive submonoid of all sections.
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.limit.π (F ⋙ category_theory.forget Mon) j, map_one' := _, map_mul' := _}
Construction of a limit cone in Mon
.
(Internal use only; use the limits API.)
Equations
- Mon.has_limits.limit F = {X := Mon.of (category_theory.limits.limit (F ⋙ category_theory.forget Mon)) (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_is_limit F = category_theory.limits.is_limit.of_faithful (category_theory.forget Mon) (category_theory.limits.limit.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.
Equations
- Mon.has_limits = {has_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {has_limit := λ (F : J ⥤ Mon), {cone := Mon.has_limits.limit F, is_limit := Mon.has_limits.limit_is_limit F}}}
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 (category_theory.limits.limit.is_limit F) (category_theory.limits.limit.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.limit (F ⋙ category_theory.forget CommMon)) (CommMon.limit_comm_monoid F), π := {app := Mon.limit_π_monoid_hom (F ⋙ category_theory.forget₂ CommMon Mon), naturality' := _}}, valid_lift := (category_theory.limits.limit.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) (category_theory.limits.limit.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' := _}) _})
The category of commutative monoids has all limits.
Equations
- CommMon.has_limits = {has_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {has_limit := λ (F : J ⥤ CommMon), category_theory.has_limit_of_created F (category_theory.forget₂ CommMon Mon)}}
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.preserves_limit_of_preserves_limit_cone (category_theory.limits.limit.is_limit F) (category_theory.limits.limit.is_limit (F ⋙ category_theory.forget CommMon))}}