The category of (commutative) rings 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
- SemiRing.semiring_obj F j = id (F.obj j).semiring
The flat sections of a functor into SemiRing
form a subsemiring of all sections.
Equations
limit.π (F ⋙ forget SemiRing) j
as a ring_hom
.
Equations
- SemiRing.limit_π_ring_hom F j = {to_fun := (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget SemiRing)).π.app j, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
Construction of a limit cone in SemiRing
.
(Internal use only; use the limits API.)
Equations
- SemiRing.has_limits.limit_cone F = {X := SemiRing.of (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget SemiRing)).X (SemiRing.limit_semiring F), π := {app := SemiRing.limit_π_ring_hom F, naturality' := _}}
Witness that the limit cone in SemiRing
is a limit cone.
(Internal use only; use the limits API.)
Equations
- SemiRing.has_limits.limit_cone_is_limit F = category_theory.limits.is_limit.of_faithful (category_theory.forget SemiRing) (category_theory.limits.types.limit_cone_is_limit (F ⋙ category_theory.forget SemiRing)) (λ (s : category_theory.limits.cone F), {to_fun := λ (v : ((category_theory.forget SemiRing).map_cone s).X), ⟨λ (j : J), ((category_theory.forget SemiRing).map_cone s).π.app j v, _⟩, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}) _
The category of rings has all limits.
An auxiliary declaration to speed up typechecking.
The forgetful functor from semirings to additive commutative monoids preserves all limits.
Equations
- SemiRing.forget₂_AddCommMon_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ SemiRing), category_theory.limits.preserves_limit_of_preserves_limit_cone (SemiRing.has_limits.limit_cone_is_limit F) (SemiRing.forget₂_AddCommMon_preserves_limits_aux F)}}
An auxiliary declaration to speed up typechecking.
The forgetful functor from semirings to monoids preserves all limits.
Equations
- SemiRing.forget₂_Mon_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ SemiRing), category_theory.limits.preserves_limit_of_preserves_limit_cone (SemiRing.has_limits.limit_cone_is_limit F) (SemiRing.forget₂_Mon_preserves_limits_aux F)}}
The forgetful functor from semirings to types preserves all limits.
Equations
- SemiRing.forget_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ SemiRing), category_theory.limits.preserves_limit_of_preserves_limit_cone (SemiRing.has_limits.limit_cone_is_limit F) (category_theory.limits.types.limit_cone_is_limit (F ⋙ category_theory.forget SemiRing))}}
Equations
- CommSemiRing.comm_semiring_obj F j = id (F.obj j).comm_semiring
We show that the forgetful functor CommSemiRing ⥤ SemiRing
creates limits.
All we need to do is notice that the limit point has a comm_semiring
instance available,
and then reuse the existing limit.
Equations
- CommSemiRing.category_theory.forget₂.category_theory.creates_limit F = category_theory.creates_limit_of_reflects_iso (λ (c' : category_theory.limits.cone (F ⋙ category_theory.forget₂ CommSemiRing SemiRing)) (t : category_theory.limits.is_limit c'), {to_liftable_cone := {lifted_cone := {X := CommSemiRing.of (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget CommSemiRing)).X (CommSemiRing.limit_comm_semiring F), π := {app := λ (Y : J), (SemiRing.has_limits.limit_cone (F ⋙ category_theory.forget₂ CommSemiRing SemiRing)).π.app Y, naturality' := _}}, valid_lift := (SemiRing.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ CommSemiRing SemiRing)).unique_up_to_iso t}, makes_limit := category_theory.limits.is_limit.of_faithful (category_theory.forget₂ CommSemiRing SemiRing) (SemiRing.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ CommSemiRing SemiRing)) (λ (s : category_theory.limits.cone F), (SemiRing.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ CommSemiRing SemiRing)).lift ((category_theory.forget₂ CommSemiRing SemiRing).map_cone s)) _})
A choice of limit cone for a functor into CommSemiRing
.
(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 category of rings has all limits.
The forgetful functor from rings to semirings preserves all limits.
Equations
The forgetful functor from rings to types preserves all limits. (That is, the underlying types could have been computed instead as limits in the category of types.)
Equations
- CommSemiRing.forget_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ CommSemiRing), category_theory.limits.comp_preserves_limit (category_theory.forget₂ CommSemiRing SemiRing) (category_theory.forget SemiRing)}}
Equations
- Ring.ring_obj F j = id (F.obj j).ring
The flat sections of a functor into Ring
form a subring of all sections.
Equations
We show that the forgetful functor CommRing ⥤ Ring
creates limits.
All we need to do is notice that the limit point has a ring
instance available,
and then reuse the existing limit.
Equations
- Ring.category_theory.forget₂.category_theory.creates_limit F = category_theory.creates_limit_of_reflects_iso (λ (c' : category_theory.limits.cone (F ⋙ category_theory.forget₂ Ring SemiRing)) (t : category_theory.limits.is_limit c'), {to_liftable_cone := {lifted_cone := {X := Ring.of (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget Ring)).X (Ring.limit_ring F), π := {app := λ (Y : J), (SemiRing.has_limits.limit_cone (F ⋙ category_theory.forget₂ Ring SemiRing)).π.app Y, naturality' := _}}, valid_lift := (SemiRing.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ Ring SemiRing)).unique_up_to_iso t}, makes_limit := category_theory.limits.is_limit.of_faithful (category_theory.forget₂ Ring SemiRing) (SemiRing.has_limits.limit_cone_is_limit (F ⋙ category_theory.forget₂ Ring SemiRing)) (λ (s : category_theory.limits.cone F), {to_fun := λ (v : ((category_theory.forget SemiRing).map_cone ((category_theory.forget₂ Ring SemiRing).map_cone s)).X), ⟨λ (j : J), ((category_theory.forget SemiRing).map_cone ((category_theory.forget₂ Ring SemiRing).map_cone s)).π.app j v, _⟩, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}) _})
A choice of limit cone for a functor into Ring
.
(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 category of rings has all limits.
The forgetful functor from rings to semirings preserves all limits.
Equations
- Ring.forget₂_SemiRing_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ Ring), category_theory.preserves_limit_of_creates_limit_and_has_limit F (category_theory.forget₂ Ring SemiRing)}}
An auxiliary declaration to speed up typechecking.
The forgetful functor from rings to additive commutative groups preserves all limits.
Equations
- Ring.forget₂_AddCommGroup_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ Ring), category_theory.limits.preserves_limit_of_preserves_limit_cone (Ring.limit_cone_is_limit F) (Ring.forget₂_AddCommGroup_preserves_limits_aux F)}}
The forgetful functor from rings to types preserves all limits. (That is, the underlying types could have been computed instead as limits in the category of types.)
Equations
- Ring.forget_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ Ring), category_theory.limits.comp_preserves_limit (category_theory.forget₂ Ring SemiRing) (category_theory.forget SemiRing)}}
Equations
- CommRing.comm_ring_obj F j = id (F.obj j).comm_ring
Equations
We show that the forgetful functor CommRing ⥤ Ring
creates limits.
All we need to do is notice that the limit point has a comm_ring
instance available,
and then reuse the existing limit.
Equations
- CommRing.category_theory.forget₂.category_theory.creates_limit F = category_theory.creates_limit_of_reflects_iso (λ (c' : category_theory.limits.cone (F ⋙ category_theory.forget₂ CommRing Ring)) (t : category_theory.limits.is_limit c'), {to_liftable_cone := {lifted_cone := {X := CommRing.of (category_theory.limits.types.limit_cone (F ⋙ category_theory.forget CommRing)).X (CommRing.limit_comm_ring F), π := {app := λ (Y : J), (SemiRing.has_limits.limit_cone (F ⋙ category_theory.forget₂ CommRing Ring ⋙ category_theory.forget₂ Ring SemiRing)).π.app Y, naturality' := _}}, valid_lift := (Ring.limit_cone_is_limit (F ⋙ category_theory.forget₂ CommRing Ring)).unique_up_to_iso t}, makes_limit := category_theory.limits.is_limit.of_faithful (category_theory.forget₂ CommRing Ring) (Ring.limit_cone_is_limit (F ⋙ category_theory.forget₂ CommRing Ring)) (λ (s : category_theory.limits.cone F), (Ring.limit_cone_is_limit (F ⋙ category_theory.forget₂ CommRing Ring)).lift ((category_theory.forget₂ CommRing Ring).map_cone s)) _})
A choice of limit cone for a functor into CommRing
.
(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 category of commutative rings has all limits.
The forgetful functor from commutative rings to rings preserves all limits. (That is, the underlying rings could have been computed instead as limits in the category of rings.)
Equations
- CommRing.forget₂_Ring_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ CommRing), category_theory.preserves_limit_of_creates_limit_and_has_limit F (category_theory.forget₂ CommRing Ring)}}
An auxiliary declaration to speed up typechecking.
The forgetful functor from commutative rings to commutative semirings preserves all limits. (That is, the underlying commutative semirings could have been computed instead as limits in the category of commutative semirings.)
Equations
- CommRing.forget₂_CommSemiRing_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ CommRing), category_theory.limits.preserves_limit_of_preserves_limit_cone (CommRing.limit_cone_is_limit F) (CommRing.forget₂_CommSemiRing_preserves_limits_aux F)}}
The forgetful functor from commutative rings to types preserves all limits. (That is, the underlying types could have been computed instead as limits in the category of types.)
Equations
- CommRing.forget_preserves_limits = {preserves_limits_of_shape := λ (J : Type u_1) (𝒥 : category_theory.small_category J), {preserves_limit := λ (F : J ⥤ CommRing), category_theory.limits.comp_preserves_limit (category_theory.forget₂ CommRing Ring) (category_theory.forget Ring)}}