Documentation

Mathlib.Algebra.Category.GroupCat.Limits

The category of (commutative) (additive) groups 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.

The flat sections of a functor into AddGroupCat form an additive subgroup of all sections.

Instances For
    theorem AddGroupCat.sectionsAddSubgroup.proof_2 {J : Type u_1} [CategoryTheory.SmallCategory J] (F : CategoryTheory.Functor J AddGroupCat) :
    ∀ {j j' : J} (f : j j'), J.map CategoryTheory.CategoryStruct.toQuiver (Type (max u_2 u_1)) CategoryTheory.CategoryStruct.toQuiver (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCat)).toPrefunctor j j' f (OfNat.ofNat ((j : J) → ↑((CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)).obj j)) 0 Zero.toOfNat0 j) = OfNat.ofNat ((j : J) → ↑((CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)).obj j)) 0 Zero.toOfNat0 j'

    The flat sections of a functor into GroupCat form a subgroup of all sections.

    Instances For
      theorem AddGroupCat.Forget₂.createsLimit.proof_5 {J : Type u_1} [CategoryTheory.SmallCategory J] (F : CategoryTheory.Functor J GroupCatMaxAux) (c' : CategoryTheory.Limits.Cone (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat))) (t : CategoryTheory.Limits.IsLimit c') (s : CategoryTheory.Limits.Cone F) :
      (CategoryTheory.forget₂ AddGroupCat AddMonCat).map ((fun s => { toZeroHom := { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) }, map_add' := (_ : ∀ (x y : ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s).pt), ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } (x + y) = ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } x + ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } y) }) s) = (CategoryTheory.forget₂ AddGroupCat AddMonCat).map ((fun s => { toZeroHom := { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) }, map_add' := (_ : ∀ (x y : ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s).pt), ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } (x + y) = ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } x + ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } y) }) s)
      theorem AddGroupCat.Forget₂.createsLimit.proof_2 {J : Type u_1} [CategoryTheory.SmallCategory J] (F : CategoryTheory.Functor J GroupCatMaxAux) (s : CategoryTheory.Limits.Cone F) (v : ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) :
      theorem AddGroupCat.Forget₂.createsLimit.proof_3 {J : Type u_2} [CategoryTheory.SmallCategory J] (F : CategoryTheory.Functor J GroupCatMaxAux) (s : CategoryTheory.Limits.Cone F) :
      { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0
      theorem AddGroupCat.Forget₂.createsLimit.proof_4 {J : Type u_2} [CategoryTheory.SmallCategory J] (F : CategoryTheory.Functor J GroupCatMaxAux) (s : CategoryTheory.Limits.Cone F) (x : ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s).pt) (y : ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s).pt) :
      ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } (x + y) = ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } x + ZeroHom.toFun { toFun := fun v => { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j v, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) v = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' v) }, map_zero' := (_ : { val := fun j => J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j 0, property := (_ : ∀ {j j' : J} (f : j j'), CategoryTheory.CategoryStruct.comp TypeMax CategoryTheory.Category.toCategoryStruct (((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).obj j') (((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π.app j) ((CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)).map f) 0 = J.app inst✝ TypeMax CategoryTheory.types ((CategoryTheory.Functor.const J).obj ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).pt) (CategoryTheory.Functor.comp (CategoryTheory.Functor.comp F (CategoryTheory.forget₂ AddGroupCat AddMonCat)) (CategoryTheory.forget AddMonCatMax)) ((CategoryTheory.forget AddMonCatMax).mapCone ((CategoryTheory.forget₂ AddGroupCat AddMonCat).mapCone s)).π j' 0) } = 0) } y

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

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

      Equations

      The forgetful functor from groups to monoids preserves all limits.

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

      Equations

      The forgetful functor from additive groups 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

      The forgetful functor from groups 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

      We show that the forgetful functor AddCommGroupCatAddGroupCat creates limits.

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

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

      We show that the forgetful functor CommGroupCatGroupCat creates limits.

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

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

      The chosen cone is a limit cone. (Generally, you'll just want to use limit.cone F.)

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

        The chosen cone is a limit cone. (Generally, you'll just want to use limit.cone F.)

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

          The forgetful functor from additive commutative groups to groups preserves all limits. (That is, the underlying group could have been computed instead as limits in the category of additive groups.)

          Equations

          The forgetful functor from commutative groups to groups preserves all limits. (That is, the underlying group could have been computed instead as limits in the category of groups.)

          Equations

          The forgetful functor from additive commutative groups to additive commutative monoids preserves all limits. (That is, the underlying additive commutative monoids could have been computed instead as limits in the category of additive commutative monoids.)

          Equations

          The forgetful functor from commutative groups to commutative monoids preserves all limits. (That is, the underlying commutative monoids could have been computed instead as limits in the category of commutative monoids.)

          Equations

          The forgetful functor from additive commutative groups to types preserves all limits. (That is, the underlying types could have been computed instead as limits in the category of types.)

          Equations

          The forgetful functor from commutative groups to types preserves all limits. (That is, the underlying types could have been computed instead as limits in the category of types.)

          Equations

          The categorical kernel of a morphism in AddCommGroupCat agrees with the usual group-theoretical kernel.

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