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