The category of (commutative) (additive) monoids has all limits #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Further, these limits are preserved by the forgetful functor --- that is, the underlying types are just the limits in the category of types.
Equations
- AddMon.add_monoid_obj F j = id (F.obj j).add_monoid
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.
Equations
- AddMon.sections_add_submonoid F = {carrier := (F ⋙ category_theory.forget AddMon).sections, add_mem' := _, zero_mem' := _}
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, mul_mem' := _, one_mem' := _}
Equations
Equations
limit.π (F ⋙ forget AddMon) j
as an add_monoid_hom
.
Equations
- AddMon.limit_π_add_monoid_hom F j = {to_fun := (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget AddMon)).π.app j, map_zero' := _, map_add' := _}
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.)
Equations
- AddMon.has_limits.limit_cone F = {X := AddMon.of (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget AddMon)).X (AddMon.limit_add_monoid F), π := {app := AddMon.limit_π_add_monoid_hom F, naturality' := _}}
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.)
Equations
- AddMon.has_limits.limit_cone_is_limit F = category_theory.limits.is_limit.of_faithful (category_theory.forget AddMon) (category_theory.limits.types.limit_cone_is_limit (F ⋙ category_theory.forget AddMon)) (λ (s : category_theory.limits.cone F), {to_fun := λ (v : ((category_theory.forget AddMon).map_cone s).X), ⟨λ (j : J), ((category_theory.forget AddMon).map_cone s).π.app j v, _⟩, map_zero' := _, map_add' := _}) _
The category of monoids has all limits.
The category of additive monoids has all limits.
The forgetful functor from monoids to types preserves all limits.
This means the underlying type of a limit can be computed as a limit in the category of types.
Equations
- Mon.forget_preserves_limits_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.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))}}
The forgetful functor from additive monoids to types preserves all limits.
This means the underlying type of a limit can be computed as a limit in the category of types.
Equations
- AddMon.forget_preserves_limits_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.category J), {preserves_limit := λ (F : J ⥤ AddMon), category_theory.limits.preserves_limit_of_preserves_limit_cone (AddMon.has_limits.limit_cone_is_limit F) (category_theory.limits.types.limit_cone_is_limit (F ⋙ category_theory.forget AddMon))}}
Equations
- CommMon.comm_monoid_obj F j = id (F.obj j).comm_monoid
Equations
- AddCommMon.add_comm_monoid_obj F j = id (F.obj j).add_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.forget₂.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' := _}) _})
We show that the forgetful functor AddCommMon ⥤ AddMon
creates limits.
All we need to do is notice that the limit point has an add_comm_monoid
instance available,
and then reuse the existing limit.
Equations
- AddCommMon.category_theory.forget₂.category_theory.creates_limit F = category_theory.creates_limit_of_reflects_iso (λ (c' : category_theory.limits.cone (F ⋙ category_theory.forget₂ AddCommMon AddMon)) (t : category_theory.limits.is_limit c'), {to_liftable_cone := {lifted_cone := {X := AddCommMon.of (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget AddCommMon)).X (AddCommMon.limit_add_comm_monoid F), π := {app := AddMon.limit_π_add_monoid_hom (F ⋙ category_theory.forget₂ AddCommMon AddMon), naturality' := _}}, valid_lift := (AddMon.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ AddCommMon AddMon)).unique_up_to_iso t}, makes_limit := category_theory.limits.is_limit.of_faithful (category_theory.forget₂ AddCommMon AddMon) (AddMon.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ AddCommMon AddMon)) (λ (s : category_theory.limits.cone F), {to_fun := λ (v : ((category_theory.forget AddMon).map_cone ((category_theory.forget₂ AddCommMon AddMon).map_cone s)).X), ⟨λ (j : J), ((category_theory.forget AddMon).map_cone ((category_theory.forget₂ AddCommMon AddMon).map_cone s)).π.app j v, _⟩, map_zero' := _, map_add' := _}) _})
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 category of commutative monoids has all limits.
The forgetful functor from commutative monoids to monoids preserves all limits.
This means the underlying type of a limit can be computed as a limit in the category of monoids.
Equations
The forgetful functor from additive commutative monoids to additive monoids preserves all limits.
This means the underlying type of a limit can be computed as a limit in the category of additive monoids.
Equations
The forgetful functor from additive commutative monoids to types preserves all limits.
This means the underlying type of a limit can be computed as a limit in the category of types.
Equations
The forgetful functor from commutative monoids to types preserves all limits.
This means the underlying type of a limit can be computed as a limit in the category of types.
Equations
- CommMon.forget_preserves_limits_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.category J), {preserves_limit := λ (F : J ⥤ CommMon), category_theory.limits.comp_preserves_limit (category_theory.forget₂ CommMon Mon) (category_theory.forget Mon)}}