# mathlib3documentation

algebra.category.Ring.colimits

# The category of commutative rings has all colimits. #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

This file uses a "pre-automated" approach, just as for Mon/colimits.lean. It is a very uniform approach, that conceivably could be synthesised directly by a tactic that analyses the shape of comm_ring and ring_hom.

We build the colimit of a diagram in CommRing by constructing the free commutative ring on the disjoint union of all the commutative rings in the diagram, then taking the quotient by the commutative ring laws within each commutative ring, and the identifications given by the morphisms in the diagram.

inductive CommRing.colimits.prequotient {J : Type v} (F : J CommRing) :
• of : Π {J : Type v} [_inst_1 : {F : (j : J),
• zero : Π {J : Type v} [_inst_1 : {F : ,
• one : Π {J : Type v} [_inst_1 : {F : ,
• neg : Π {J : Type v} [_inst_1 : {F : ,
• add : Π {J : Type v} [_inst_1 : {F : ,
• mul : Π {J : Type v} [_inst_1 : {F : ,

An inductive type representing all commutative ring expressions (without relations) on a collection of types indexed by the objects of J.

Instances for CommRing.colimits.prequotient
@[protected, instance]
Equations
inductive CommRing.colimits.relation {J : Type v} (F : J CommRing) :
• refl : {J : Type v} [_inst_1 : {F : (x : ,
• symm : {J : Type v} [_inst_1 : {F : (x y : ,
• trans : {J : Type v} [_inst_1 : {F : (x y z : ,
• map : {J : Type v} [_inst_1 : {F : (j j' : J) (f : j j') (x : (F.obj j)), ((F.map f) x))
• zero : {J : Type v} [_inst_1 : {F : (j : J),
• one : {J : Type v} [_inst_1 : {F : (j : J),
• neg : {J : Type v} [_inst_1 : {F : (j : J) (x : (F.obj j)),
• add : {J : Type v} [_inst_1 : {F : (j : J) (x y : (F.obj j)),
• mul : {J : Type v} [_inst_1 : {F : (j : J) (x y : (F.obj j)),
• neg_1 : {J : Type v} [_inst_1 : {F : (x x' : , x'.neg
• add_1 : {J : Type v} [_inst_1 : {F : (x x' y : , (x.add y) (x'.add y)
• add_2 : {J : Type v} [_inst_1 : {F : (x y y' : , (x.add y) (x.add y')
• mul_1 : {J : Type v} [_inst_1 : {F : (x x' y : , (x.mul y) (x'.mul y)
• mul_2 : {J : Type v} [_inst_1 : {F : (x y y' : , (x.mul y) (x.mul y')
• zero_add : {J : Type v} [_inst_1 : {F : (x : ,
• add_zero : {J : Type v} [_inst_1 : {F : (x : ,
• one_mul : {J : Type v} [_inst_1 : {F : (x : ,
• mul_one : {J : Type v} [_inst_1 : {F : (x : ,
• add_left_neg : {J : Type v} [_inst_1 : {F : (x : ,
• add_comm : {J : Type v} [_inst_1 : {F : (x y : , (x.add y) (y.add x)
• mul_comm : {J : Type v} [_inst_1 : {F : (x y : , (x.mul y) (y.mul x)
• mul_assoc : {J : Type v} [_inst_1 : {F : (x y z : , ((x.mul y).mul z) (x.mul (y.mul z))
• left_distrib : {J : Type v} [_inst_1 : {F : (x y z : , (x.mul (y.add z)) ((x.mul y).add (x.mul z))
• right_distrib : {J : Type v} [_inst_1 : {F : (x y z : , ((x.add y).mul z) ((x.mul z).add (y.mul z))

The relation on prequotient saying when two expressions are equal because of the commutative ring laws, or because one element is mapped to another by a morphism in the diagram.

@[instance]

The setoid corresponding to commutative expressions modulo monoid relations and identifications.

Equations
@[protected, instance]

The underlying type of the colimit of a diagram in CommRing.

Equations
Instances for CommRing.colimits.colimit_type
@[protected, instance]
Equations
@[protected, instance]
Equations
@[protected, instance]
Equations
@[simp]
theorem CommRing.colimits.quot_zero {J : Type v} (F : J CommRing) :
@[simp]
theorem CommRing.colimits.quot_one {J : Type v} (F : J CommRing) :
@[simp]
theorem CommRing.colimits.quot_neg {J : Type v} (F : J CommRing)  :
quot.mk setoid.r x.neg = -quot.mk setoid.r x
@[simp]
theorem CommRing.colimits.quot_add {J : Type v} (F : J CommRing) (x y : CommRing.colimits.prequotient F) :
quot.mk setoid.r (x.add y) = quot.mk setoid.r x + quot.mk setoid.r y
@[simp]
theorem CommRing.colimits.quot_mul {J : Type v} (F : J CommRing) (x y : CommRing.colimits.prequotient F) :
quot.mk setoid.r (x.mul y) = quot.mk setoid.r x * quot.mk setoid.r y

The bundled commutative ring giving the colimit of a diagram.

Equations
def CommRing.colimits.cocone_fun {J : Type v} (F : J CommRing) (j : J) (x : (F.obj j)) :

The function from a given commutative ring in the diagram to the colimit commutative ring.

Equations
def CommRing.colimits.cocone_morphism {J : Type v} (F : J CommRing) (j : J) :

The ring homomorphism from a given commutative ring in the diagram to the colimit commutative ring.

Equations
@[simp]
theorem CommRing.colimits.cocone_naturality {J : Type v} (F : J CommRing) {j j' : J} (f : j j') :
@[simp]
theorem CommRing.colimits.cocone_naturality_components {J : Type v} (F : J CommRing) (j j' : J) (f : j j') (x : (F.obj j)) :
((F.map f) x) =

The cocone over the proposed colimit commutative ring.

Equations
@[simp]

The function from the free commutative ring on the diagram to the cone point of any other cocone.

Equations
def CommRing.colimits.desc_fun {J : Type v} (F : J CommRing)  :

The function from the colimit commutative ring to the cone point of any other cocone.

Equations
• = quot.lift _

The ring homomorphism from the colimit commutative ring to the cone point of any other cocone.

Equations

Evidence that the proposed colimit is the colimit.

Equations
@[protected, instance]