Documentation

Mathlib.Algebra.Category.MonCat.Limits

The category of (commutative) (additive) monoids has all limits #

Further, these limits are preserved by the forgetful functor --- that is, the underlying types are just the limits in the category of types.

abbrev AddMonCatMax :
Type ((max u1 u2) + 1)

An alias for AddMonCat.{max u v}, to deal around unification issues.

Equations
Instances For
    @[inline, reducible]
    abbrev MonCatMax :
    Type ((max u1 u2) + 1)

    An alias for MonCat.{max u v}, to deal around unification issues.

    Equations
    Instances For

      The flat sections of a functor into AddMonCat form an additive submonoid of all sections.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem AddMonCat.sectionsAddSubmonoid.proof_2 {J : Type u_2} [CategoryTheory.Category.{u_1, u_2} J] (F : CategoryTheory.Functor J AddMonCat) {j : J} {j' : J} (f : j ⟶ j') :
        (F.map f) 0 = 0

        The flat sections of a functor into MonCat form a submonoid of all sections.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          (Internal use only; use the limits API.)

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Construction of a limit cone in MonCat. (Internal use only; use the limits API.)

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem AddMonCat.HasLimits.limitConeIsLimit.proof_3 {J : Type u_3} [CategoryTheory.Category.{u_2, u_3} J] (F : CategoryTheory.Functor J AddMonCat) [Small.{u_1, max u_1 u_3} ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddMonCat)))] (s : CategoryTheory.Limits.Cone F) (x : ↑s.pt) (y : ↑s.pt) :
              { toFun := fun (v : ((CategoryTheory.forget AddMonCat).mapCone s).pt) => (equivShrink ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddMonCat)))).1 { val := fun (j : J) => ((CategoryTheory.forget AddMonCat).mapCone s).π.app j v, property := ⋯ }, map_zero' := ⋯ }.toFun (x + y) = { toFun := fun (v : ((CategoryTheory.forget AddMonCat).mapCone s).pt) => (equivShrink ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddMonCat)))).1 { val := fun (j : J) => ((CategoryTheory.forget AddMonCat).mapCone s).π.app j v, property := ⋯ }, map_zero' := ⋯ }.toFun x + { toFun := fun (v : ((CategoryTheory.forget AddMonCat).mapCone s).pt) => (equivShrink ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddMonCat)))).1 { val := fun (j : J) => ((CategoryTheory.forget AddMonCat).mapCone s).π.app j v, property := ⋯ }, map_zero' := ⋯ }.toFun y

              (Internal use only; use the limits API.)

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem AddMonCat.HasLimits.limitConeIsLimit.proof_4 {J : Type u_3} [CategoryTheory.Category.{u_1, u_3} J] (F : CategoryTheory.Functor J AddMonCat) [Small.{u_2, max u_2 u_3} ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddMonCat)))] (s : CategoryTheory.Limits.Cone F) :
                (CategoryTheory.forget AddMonCat).map ((fun (s : CategoryTheory.Limits.Cone F) => { toZeroHom := { toFun := fun (v : ((CategoryTheory.forget AddMonCat).mapCone s).pt) => (equivShrink ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddMonCat)))).1 { val := fun (j : J) => ((CategoryTheory.forget AddMonCat).mapCone s).π.app j v, property := ⋯ }, map_zero' := ⋯ }, map_add' := ⋯ }) s) = (CategoryTheory.forget AddMonCat).map ((fun (s : CategoryTheory.Limits.Cone F) => { toZeroHom := { toFun := fun (v : ((CategoryTheory.forget AddMonCat).mapCone s).pt) => (equivShrink ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddMonCat)))).1 { val := fun (j : J) => ((CategoryTheory.forget AddMonCat).mapCone s).π.app j v, property := ⋯ }, map_zero' := ⋯ }, map_add' := ⋯ }) s)

                Witness that the limit cone in MonCat is a limit cone. (Internal use only; use the limits API.)

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  If J is u-small, AddMonCat.{u} has limits of shape J.

                  Equations
                  • ⋯ = ⋯

                  If J is u-small, MonCat.{u} has limits of shape J.

                  Equations
                  • ⋯ = ⋯

                  The category of additive monoids has all limits.

                  Equations
                  • ⋯ = ⋯

                  The category of monoids has all limits.

                  Equations
                  • ⋯ = ⋯

                  If J is u-small, the forgetful functor from AddMonCat.{u}

                  preserves limits of shape J.

                  Equations
                  • One or more equations did not get rendered due to their size.

                  If J is u-small, the forgetful functor from MonCat.{u} preserves limits of shape J.

                  Equations
                  • One or more equations did not get rendered due to their size.

                  The forgetful functor from additive monoids to types preserves all limits.

                  This means the underlying type of a limit can be computed as a limit in the category of types.

                  Equations
                  • One or more equations did not get rendered due to their size.

                  The forgetful functor from monoids to types preserves all limits.

                  This means the underlying type of a limit can be computed as a limit in the category of types.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  abbrev AddCommMonCatMax :
                  Type ((max u1 u2) + 1)

                  An alias for AddCommMonCat.{max u v}, to deal around unification issues.

                  Equations
                  Instances For
                    @[inline, reducible]
                    abbrev CommMonCatMax :
                    Type ((max u1 u2) + 1)

                    An alias for CommMonCat.{max u v}, to deal around unification issues.

                    Equations
                    Instances For
                      theorem AddCommMonCat.forget₂CreatesLimit.proof_6 {J : Type u_3} [CategoryTheory.Category.{u_1, u_3} J] (F : CategoryTheory.Functor J AddCommMonCat) [Small.{u_2, max u_2 u_3} ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddCommMonCat)))] (c' : CategoryTheory.Limits.Cone (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddCommMonCat AddMonCat))) (t : CategoryTheory.Limits.IsLimit c') (s : CategoryTheory.Limits.Cone F) :

                      We show that the forgetful functor AddCommMonCat ⥤ AddMonCat creates limits.

                      All we need to do is notice that the limit point has an AddCommMonoid instance available,

                      and then reuse the existing limit.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      theorem AddCommMonCat.forget₂CreatesLimit.proof_5 {J : Type u_3} [CategoryTheory.Category.{u_2, u_3} J] (F : CategoryTheory.Functor J AddCommMonCat) [Small.{u_1, max u_1 u_3} ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp F (CategoryTheory.forget AddCommMonCat)))] (s : CategoryTheory.Limits.Cone F) (x : ↑((CategoryTheory.forget₂ AddCommMonCat AddMonCat).mapCone s).pt) (y : ↑((CategoryTheory.forget₂ AddCommMonCat AddMonCat).mapCone s).pt) :
                      { toFun := fun (v : ((CategoryTheory.forget AddMonCat).mapCone ((CategoryTheory.forget₂ AddCommMonCat AddMonCat).mapCone s)).pt) => (equivShrink ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddCommMonCat AddMonCat)) (CategoryTheory.forget AddMonCat)))).1 { val := fun (j : J) => ((CategoryTheory.forget AddMonCat).mapCone ((CategoryTheory.forget₂ AddCommMonCat AddMonCat).mapCone s)).π.app j v, property := ⋯ }, map_zero' := ⋯ }.toFun (x + y) = { toFun := fun (v : ((CategoryTheory.forget AddMonCat).mapCone ((CategoryTheory.forget₂ AddCommMonCat AddMonCat).mapCone s)).pt) => (equivShrink ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddCommMonCat AddMonCat)) (CategoryTheory.forget AddMonCat)))).1 { val := fun (j : J) => ((CategoryTheory.forget AddMonCat).mapCone ((CategoryTheory.forget₂ AddCommMonCat AddMonCat).mapCone s)).π.app j v, property := ⋯ }, map_zero' := ⋯ }.toFun x + { toFun := fun (v : ((CategoryTheory.forget AddMonCat).mapCone ((CategoryTheory.forget₂ AddCommMonCat AddMonCat).mapCone s)).pt) => (equivShrink ↑(CategoryTheory.Functor.sections (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddCommMonCat AddMonCat)) (CategoryTheory.forget AddMonCat)))).1 { val := fun (j : J) => ((CategoryTheory.forget AddMonCat).mapCone ((CategoryTheory.forget₂ AddCommMonCat AddMonCat).mapCone s)).π.app j v, property := ⋯ }, map_zero' := ⋯ }.toFun y

                      We show that the forgetful functor CommMonCat ⥤ MonCat creates limits.

                      All we need to do is notice that the limit point has a CommMonoid instance available, and then reuse the existing limit.

                      Equations
                      • One or more equations did not get rendered due to their size.

                      If J is u-small, AddCommMonCat.{u} has limits of shape J.

                      Equations
                      • ⋯ = ⋯

                      If J is u-small, CommMonCat.{u} has limits of shape J.

                      Equations
                      • ⋯ = ⋯

                      The category of additive commutative monoids has all limits.

                      Equations
                      • ⋯ = ⋯

                      The category of commutative monoids has all limits.

                      Equations
                      • ⋯ = ⋯

                      The forgetful functor from additive commutative monoids to additive monoids preserves all limits.

                      This means the underlying type of a limit can be computed as a limit in the category of additive

                      monoids.

                      Equations
                      • One or more equations did not get rendered due to their size.

                      The forgetful functor from commutative monoids to monoids preserves all limits.

                      This means the underlying type of a limit can be computed as a limit in the category of monoids.

                      Equations
                      • One or more equations did not get rendered due to their size.

                      If J is u-small, the forgetful functor from AddCommMonCat.{u}

                      preserves limits of shape J.

                      Equations
                      • One or more equations did not get rendered due to their size.

                      If J is u-small, the forgetful functor from CommMonCat.{u} preserves limits of shape J.

                      Equations
                      • One or more equations did not get rendered due to their size.

                      The forgetful functor from additive commutative monoids to types preserves all

                      limits.

                      This means the underlying type of a limit can be computed as a limit in the category of types.

                      Equations
                      • One or more equations did not get rendered due to their size.

                      The forgetful functor from commutative monoids to types preserves all limits.

                      This means the underlying type of a limit can be computed as a limit in the category of types.

                      Equations
                      • One or more equations did not get rendered due to their size.