The category of abelian groups has finite biproducts #
Construct limit data for a binary product in AddCommGrpCat, using
AddCommGrpCat.of (G × H).
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
@[simp]
theorem AddCommGrpCat.binaryProductLimitCone_isLimit_lift (G H : AddCommGrpCat) (t : CategoryTheory.Limits.Cone (CategoryTheory.Limits.pair G H)) :
@[simp]
theorem AddCommGrpCat.binaryProductLimitCone_cone_π_app_left (G H : AddCommGrpCat) :
(G.binaryProductLimitCone H).cone.π.app { as := CategoryTheory.Limits.WalkingPair.left } = ofHom (AddMonoidHom.fst ↑G ↑H)
@[simp]
theorem AddCommGrpCat.binaryProductLimitCone_cone_π_app_right (G H : AddCommGrpCat) :
(G.binaryProductLimitCone H).cone.π.app { as := CategoryTheory.Limits.WalkingPair.right } = ofHom (AddMonoidHom.snd ↑G ↑H)
We verify that the biproduct in AddCommGrpCat is isomorphic to
the Cartesian product of the underlying types:
Equations
Instances For
@[simp]
@[simp]
theorem AddCommGrpCat.biprodIsoProd_inv_comp_desc_apply {G H K : AddCommGrpCat} (f : G ⟶ K) (g : H ⟶ K) (x : ↑G × ↑H) :
(CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.biprod.desc f g))
((CategoryTheory.ConcreteCategory.hom (G.biprodIsoProd H).inv) x) = (Hom.hom f) x.1 + (Hom.hom g) x.2
def AddCommGrpCat.HasLimit.lift {J : Type w} (f : J → AddCommGrpCat) (s : CategoryTheory.Limits.Fan f) :
The map from an arbitrary cone over an indexed family of abelian groups to the Cartesian product of those groups.
Equations
- AddCommGrpCat.HasLimit.lift f s = AddCommGrpCat.ofHom { toFun := fun (x : ↑s.1) (j : J) => (CategoryTheory.ConcreteCategory.hom (s.π.app { as := j })) x, map_zero' := ⋯, map_add' := ⋯ }
Instances For
@[simp]
theorem AddCommGrpCat.HasLimit.lift_hom_apply {J : Type w} (f : J → AddCommGrpCat) (s : CategoryTheory.Limits.Fan f) (x : ↑s.1) (j : J) :
Construct limit data for a product in AddCommGrpCat, using
AddCommGrpCat.of (∀ j, F.obj j).
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem AddCommGrpCat.HasLimit.productLimitCone_cone_π {J : Type w} (f : J → AddCommGrpCat) :
(productLimitCone f).cone.π = CategoryTheory.Discrete.natTrans fun (j : CategoryTheory.Discrete J) =>
ofHom (Pi.evalAddMonoidHom (fun (j : J) => ↑(f j)) j.as)
@[simp]
theorem AddCommGrpCat.HasLimit.productLimitCone_isLimit_lift {J : Type w} (f : J → AddCommGrpCat) (s : CategoryTheory.Limits.Fan f) :
@[simp]
We verify that the biproduct we've just defined is isomorphic to the AddCommGrpCat structure
on the dependent function type.
Equations
Instances For
@[simp]
theorem AddCommGrpCat.biproductIsoPi_inv_comp_π {J : Type} [Finite J] (f : J → AddCommGrpCat) (j : J) :
CategoryTheory.CategoryStruct.comp (biproductIsoPi f).inv (CategoryTheory.Limits.biproduct.π f j) = ofHom (Pi.evalAddMonoidHom (fun (j : J) => ↑(f j)) j)
theorem AddCommGrpCat.biproductIsoPi_inv_comp_π_apply {J : Type} [Finite J] (f : J → AddCommGrpCat) (j : J) (x : (j : J) → ↑(f j)) :