Documentation

Mathlib.Algebra.Category.Grp.Biproducts

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_cone_pt (G : AddCommGrp) (H : AddCommGrp) :
    (G.binaryProductLimitCone H).cone.pt = AddCommGrp.of (G × H)
    @[simp]
    theorem AddCommGrp.binaryProductLimitCone_cone_π_app_left (G : AddCommGrp) (H : AddCommGrp) :
    (G.binaryProductLimitCone H).cone.app { as := CategoryTheory.Limits.WalkingPair.left } = AddMonoidHom.fst G H
    @[simp]
    theorem AddCommGrp.binaryProductLimitCone_cone_π_app_right (G : AddCommGrp) (H : AddCommGrp) :
    (G.binaryProductLimitCone H).cone.app { as := CategoryTheory.Limits.WalkingPair.right } = AddMonoidHom.snd G H
    noncomputable def AddCommGrp.biprodIsoProd (G : AddCommGrp) (H : AddCommGrp) :
    G H AddCommGrp.of (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_hom_apply (G : AddCommGrp) (H : AddCommGrp) (i : (CategoryTheory.Limits.BinaryBiproduct.bicone G H).toCone.pt) :
      (G.biprodIsoProd H).hom i = (CategoryTheory.Limits.biprod.fst i, CategoryTheory.Limits.biprod.snd i)
      @[simp]
      theorem AddCommGrp.biprodIsoProd_inv_comp_fst (G : AddCommGrp) (H : AddCommGrp) :
      CategoryTheory.CategoryStruct.comp (G.biprodIsoProd H).inv CategoryTheory.Limits.biprod.fst = AddMonoidHom.fst G H
      theorem AddCommGrp.biprodIsoProd_inv_comp_fst_apply (G : AddCommGrp) (H : AddCommGrp) (x : (CategoryTheory.forget AddCommGrp).obj (AddCommGrp.of (G × H))) :
      CategoryTheory.Limits.biprod.fst ((G.biprodIsoProd H).inv x) = (AddMonoidHom.fst G H) x
      @[simp]
      theorem AddCommGrp.biprodIsoProd_inv_comp_snd (G : AddCommGrp) (H : AddCommGrp) :
      CategoryTheory.CategoryStruct.comp (G.biprodIsoProd H).inv CategoryTheory.Limits.biprod.snd = AddMonoidHom.snd G H
      theorem AddCommGrp.biprodIsoProd_inv_comp_snd_apply (G : AddCommGrp) (H : AddCommGrp) (x : (CategoryTheory.forget AddCommGrp).obj (AddCommGrp.of (G × H))) :
      CategoryTheory.Limits.biprod.snd ((G.biprodIsoProd H).inv x) = (AddMonoidHom.snd G H) x
      def AddCommGrp.HasLimit.lift {J : Type w} (f : JAddCommGrp) (s : CategoryTheory.Limits.Fan f) :
      s.pt AddCommGrp.of ((j : J) → (f j))

      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 = { toFun := fun (x : s.pt) (j : J) => (s.app { as := j }) x, map_zero' := , map_add' := }
      Instances For

        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]
          noncomputable def AddCommGrp.biproductIsoPi {J : Type} [Finite J] (f : JAddCommGrp) :
          f AddCommGrp.of ((j : J) → (f j))

          We verify that the biproduct we've just defined is isomorphic to the AddCommGrp structure on the dependent function type.

          Equations
          Instances For
            theorem AddCommGrp.biproductIsoPi_inv_comp_π_apply {J : Type} [Finite J] (f : JAddCommGrp) (j : J) (x : (CategoryTheory.forget AddCommGrp).obj (AddCommGrp.of ((j : J) → (f j)))) :
            (CategoryTheory.Limits.biproduct.π f j) ((AddCommGrp.biproductIsoPi f).inv x) = (Pi.evalAddMonoidHom (fun (j : J) => (f j)) j) x