Basic structures on product categories #
This file supplies componentwise smallness, zero morphisms, and zero objects for Cartesian product categories. These structures let additive constructions and invariants apply to products.
It also shows that pushout and pullback squares in a product category are detected
componentwise: a square in C × D is a pushout (resp. pullback) exactly when both of its
projected squares are (CategoryTheory.IsPushout.fst, CategoryTheory.IsPushout.snd,
CategoryTheory.IsPushout.prod, and their pullback counterparts).
Zero morphisms in a product category are computed componentwise.
The product of essentially small categories is essentially small.
A pair of zero objects is a zero object of the product category.
The first projection of a pushout square in a product category is a pushout square.
The second projection of a pushout square in a product category is a pushout square.
A square in a product category whose two projections are pushout squares is a pushout square.
The first projection of a pullback square in a product category is a pullback square.
The second projection of a pullback square in a product category is a pullback square.
A square in a product category whose two projections are pullback squares is a pullback square.