The category of (commutative) rings 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.
Some definitions may be extremely slow to elaborate, when the target type to be constructed
is complicated and when the type of the term given in the definition is also complicated and does
not obviously match the target type. In this case, instead of just giving the term, prefixing it
with by apply
may speed up things considerably as the types are not elaborated in the same order.
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_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.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_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.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_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.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
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
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_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.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_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.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
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_of_size = {preserves_limits_of_shape := λ (J : Type v) (𝒥 : category_theory.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.)