Kerodon

$\Newextarrow{\xRightarrow}{5,5}{0x21D2}$ $\newcommand\empty{}$
$\Newextarrow{\xhookrightarrow}{10,10}{0x21AA}$

7.6.1 Products and Coproducts

We now study limits and colimits of diagrams which are indexed by discrete simplicial sets. In this case, the definitions of limit and colimit can be formulated entirely at the level of the (enriched) homotopy category.

Definition 7.6.1.1. Let $\mathrm{h} \mathit{\operatorname{Kan}}$ denote the homotopy category of Kan complexes and let $\operatorname{\mathcal{C}}$ be an $\mathrm{h} \mathit{\operatorname{Kan}}$-enriched category. We say that a collection of morphisms $\{ q_ i: Y \rightarrow Y_ i \} _{i \in I}$ of $\operatorname{\mathcal{C}}$ exhibits $Y$ as an $\mathrm{h} \mathit{\operatorname{Kan}}$-enriched product of the collection $\{ Y_ i \} _{i \in I}$ if, for every object $X \in \operatorname{\mathcal{C}}$, the collection of maps $\underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}(X,Y) \xrightarrow { q_ i \circ } \underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}(X,Y_ i)$ induces an isomorphism

\[ \underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}( X, Y) \rightarrow {\prod }_{i \in I} \underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}( X, Y_ i ) \]

in the homotopy category $\mathrm{h} \mathit{\operatorname{Kan}}$.

We say that a collection of morphisms $\{ e_ i: Y_ i \rightarrow Y \} _{i \in I}$ exhibits $Y$ as an $\mathrm{h} \mathit{\operatorname{Kan}}$-enriched coproduct of the collection $\{ Y_ i \} _{i \in I}$ if, for every object $Z \in \operatorname{\mathcal{C}}$, the collection of maps $\underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}(Y,Z) \xrightarrow { \circ e_ i } \underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}(Y_ i,Z)$ induces an isomorphism

\[ \underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}( X, Y) \rightarrow {\prod }_{i \in I} \underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}( X, Y_ i ) \]

Warning 7.6.1.2. Let $\operatorname{\mathcal{C}}$ be an $\mathrm{h} \mathit{\operatorname{Kan}}$-enriched category, and let $\{ q_ i: Y \rightarrow Y_ i \} _{i \in I}$ be a collection of morphisms in $\operatorname{\mathcal{C}}$. If $\{ q_ i \} _{i \in I}$ exhibits $Y$ as an $\mathrm{h} \mathit{\operatorname{Kan}}$-enriched product of $\{ Y_ i \} _{i \in I}$, then it also exhibits $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the underlying category $\operatorname{\mathcal{C}}$ (where we neglect its $\mathrm{h} \mathit{\operatorname{Kan}}$-enrichment). Beware that the converse is false in general (see Warning 7.6.1.11).

Definition 7.6.1.3. Let $\operatorname{\mathcal{C}}$ be an $\infty $-category. We say that a collection of morphisms $\{ q_ i: Y \rightarrow Y_ i \} _{i \in I}$ in $\operatorname{\mathcal{C}}$ exhibits $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ if the collection of homotopy classes $\{ [q_ i]: Y \rightarrow Y_ i \} _{i \in I}$ exhibits $Y$ as an $\mathrm{h} \mathit{\operatorname{Kan}}$-enriched product $\{ Y_ i \} _{i \in I}$ in the homotopy category $\mathrm{h} \mathit{\operatorname{\mathcal{C}}}$ (equipped with the $\mathrm{h} \mathit{\operatorname{Kan}}$-enrichment described in Construction 4.6.9.13). In other words, the collection of morphisms $\{ q_ i \} _{i \in I}$ exhibits $Y$ as a product of the collection of objects $\{ Y_ i \} _{i \in I}$ if, for every object $X \in \operatorname{\mathcal{C}}$, the induced map

\[ \operatorname{Hom}_{\operatorname{\mathcal{C}}}(X,Y) \rightarrow {\prod }_{i \in I} \operatorname{Hom}_{\operatorname{\mathcal{C}}}( X, Y_ i ) \]

is a homotopy equivalence of Kan complexes. Similarly, we say that a collection of morphisms $\{ e_ i: Y_ i \rightarrow Y \} _{i \in I}$ of $\operatorname{\mathcal{C}}$ exhibits $Y$ as a coproduct of the collection $\{ Y_ i\} _{i \in I}$ if, for every object $Z \in \operatorname{\mathcal{C}}$, the induced map

\[ \operatorname{Hom}_{\operatorname{\mathcal{C}}}( Y, Z ) \rightarrow {\prod }_{i \in I} \operatorname{Hom}_{\operatorname{\mathcal{C}}}( Y_ i, Z) \]

is a homotopy equivalence of Kan complexes.

Remark 7.6.1.4. Let $\{ f_ i: Y \rightarrow Y_ i \} _{i \in I}$ be a collection of morphisms in an $\infty $-category $\operatorname{\mathcal{C}}$. Then the collection $\{ q_ i \} _{i \in I}$ exhibits $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the category $\operatorname{\mathcal{C}}$ if and only if it exhibits $Y$ as a coproduct of the collection $\{ Y_ i \} _{i \in I}$ in the opposite $\infty $-category $\operatorname{\mathcal{C}}^{\operatorname{op}}$.

Remark 7.6.1.5. Let $\operatorname{\mathcal{C}}$ be an $\infty $-category and let $\{ Y_ i \} _{i \in I}$ be a collection of objects of $\operatorname{\mathcal{C}}$, which we will identify with a diagram

\[ F: I \rightarrow \operatorname{\mathcal{C}}\quad \quad F(i) = Y_ i \]

indexed by the constant simplicial set associated to $I$ (Remark 1.1.5.3). Suppose we are given another object $Y \in \operatorname{\mathcal{C}}$ together with a collection of morphisms $\{ q_ i: Y \rightarrow Y_ i \} _{i \in I}$. The following conditions are equivalent:

$(1)$

The collection of morphisms $\{ q_ i \} _{i \in I}$ exhibits $Y$ as a product of the collection $\{ Y_ i\} _{i \in I}$, in the sense of Definition 7.6.1.3.

$(2)$

Let $\underline{Y}: I \rightarrow \operatorname{\mathcal{C}}$ denote the constant diagram taking the value $Y$, so that the collection $\{ q_ i \} _{i \in I}$ can be identified with a natural transformation $q: \underline{Y} \rightarrow F$. Then $q$ exhibits $Y$ as a limit of the diagram $F$, in the sense of Definition 7.1.1.1.

$(3)$

Let $\overline{F}: I^{\triangleleft } \rightarrow \operatorname{\mathcal{C}}$ be the diagram carrying each edge $\{ i\} ^{\triangleleft } \subseteq I^{\triangleleft }$ to the morphism $q_ i$. Then $\overline{F}$ is a limit diagram in $\operatorname{\mathcal{C}}$, in the sense of Definition 7.1.2.4.

The equivalence $(1) \Leftrightarrow (2)$ is immediate from the definitions (see Remark 4.6.1.9) and the equivalence $(2) \Leftrightarrow (3)$ follows from Remark 7.1.2.6.

Remark 7.6.1.6. Let $\operatorname{\mathcal{C}}$ be an ordinary category, and let $\{ q_ i: Y \rightarrow Y_ i \} _{i \in I}$ be a collection of morphisms in $\operatorname{\mathcal{C}}$. Then $\{ q_ i \} _{i \in I}$ exhibits $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the category $\operatorname{\mathcal{C}}$ (in the sense of classical category theory) if and only if it exhibits $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the $\infty $-category $\operatorname{N}_{\bullet }(\operatorname{\mathcal{C}})$ (in the sense of Definition 7.6.1.3).

Notation 7.6.1.7. Let $\operatorname{\mathcal{C}}$ be an $\infty $-category and let $\{ Y_ i \} _{i \in I}$ be a collection of objects of $\operatorname{\mathcal{C}}$. We will say that an object $Y \in \operatorname{\mathcal{C}}$ is a product of the collection $\{ Y_ i \} _{i \in I}$ if there exists a collection of morphisms $\{ q_ i: Y \rightarrow Y_ i \} $ which exhibits $Y$ as a product of $\{ Y_ i \} _{i \in I}$. If this condition is satisfied, then the object $Y$ is uniquely determined up to isomorphism (see Proposition 7.1.1.12). To emphasize this uniqueness, we will sometimes denote the object $Y$ by ${\prod }_{i \in I} Y_ i$, and refer to it as the product of the collection $\{ Y_ i \} _{i \in I}$. Similarly, we say that $Y$ is a coproduct of the collection $\{ Y_ i \} _{i \in I}$ if there exists a collection of morphisms $\{ e_ i: Y_ i \rightarrow Y \} _{\in I}$ which exhibits $Y$ as a coproduct of $\{ Y_ i \} _{i \in I}$. In this case, we sometimes denote the object $Y$ by ${\coprod }_{i \in I} Y_ i$ and refer to it as the coproduct of the collection $\{ Y_ i \} _{i \in I}$.

Example 7.6.1.8 (Initial and Final Objects). Let $\operatorname{\mathcal{C}}$ be an $\infty $-category. An object $Y \in \operatorname{\mathcal{C}}$ is initial (in the sense of Definition 4.6.7.1) if and only if it is the coproduct of the empty collection of objects of $\operatorname{\mathcal{C}}$ (see Example 7.1.1.6). Similarly, $Y$ is final if and only if it is a product of the empty collection of objects.

Example 7.6.1.9 (Isomorphisms). Let $f: X \rightarrow Y$ be a morphism in an $\infty $-category $\operatorname{\mathcal{C}}$. The following conditions are equivalent:

$(1)$

The morphism $f$ is an isomorphism.

$(2)$

The morphism $f$ exhibits $X$ as a product of the one-element collection of objects $\{ Y \} $.

$(3)$

The morphism $f$ exhibits $Y$ as a coproduct of the one-element collection of objects $\{ X \} $.

Notation 7.6.1.10. In practice, we will use Definition 7.6.1.3 most often in the case where the set $I$ has exactly two elements, so that the collection $\{ Y_ i \} _{i \in I}$ can be identified with an ordered pair $(Y_0, Y_1)$ of objects of $\operatorname{\mathcal{C}}$. In this case, we say that morphisms $q_0: Y \rightarrow Y_0$ and $q_1: Y \rightarrow Y_1$ exhibit $Y$ as a product of $Y_0$ with $Y_1$ if they satisfy the requirement of Definition 7.6.1.3: that is, for every object $X \in \operatorname{\mathcal{C}}$, the induced map

\[ \operatorname{Hom}_{\operatorname{\mathcal{C}}}(X,Y) \rightarrow \operatorname{Hom}_{\operatorname{\mathcal{C}}}( X, Y_0 ) \times \operatorname{Hom}_{\operatorname{\mathcal{C}}}( X, Y_1) \]

is a homotopy equivalence. If this condition is satisfied, then we will often denote the object $Y$ by $Y_0 \times Y_1$ and refer to it as the product of $Y_0$ with $Y_1$. Similarly, we say that a pair of morphisms $e_0: Y_0 \rightarrow Y$ and $e_1: Y_1 \rightarrow Y$ exhibit $Y$ as a coproduct of $Y_0$ with $Y_1$ if, for every object $Z \in \operatorname{\mathcal{C}}$, the induced map

\[ \operatorname{Hom}_{\operatorname{\mathcal{C}}}(Y,Z) \rightarrow \operatorname{Hom}_{\operatorname{\mathcal{C}}}( Y_0 , Z) \times \operatorname{Hom}_{\operatorname{\mathcal{C}}}( Y_1, Z) \]

is a homotopy equivalence; in this case, we denote $Y$ by $Y_0 \coprod Y_1$ and refer to it as the coproduct of $Y_0$ with $Y_1$.

Warning 7.6.1.11. Let $\operatorname{\mathcal{C}}$ be an $\infty $-category. if $\{ q_ i: Y \rightarrow Y_ i \} _{i \in I}$ is a collection of morphisms of $\operatorname{\mathcal{C}}$ which exhibits $Y$ as a product of the collection of objects $\{ Y_ i \} _{i \in I}$ in the $\infty $-category $\operatorname{\mathcal{C}}$, then the collection of homotopy classes $\{ [q_ i]: Y \rightarrow Y_ i \} _{i \in I}$ exhibits $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the ordinary category $\mathrm{h} \mathit{\operatorname{\mathcal{C}}}$. The converse holds if the collection $\{ Y_ i \} _{i \in I}$ admits a products in the $\infty $-category $\operatorname{\mathcal{C}}$. However, the converse need not hold in general, even in the special case where the set $I$ is empty: see Warning 4.6.7.18.

Proposition 7.6.1.12. Let $\operatorname{\mathcal{C}}$ be an $\infty $-category containing an object $X$. The following conditions are equivalent:

$(1)$

For every object $Y \in \operatorname{\mathcal{C}}$, there exists a product of $X \times Y$ in the $\infty $-category $\operatorname{\mathcal{C}}$.

$(2)$

The forgetful functor $U: \operatorname{\mathcal{C}}_{ / Y} \rightarrow \operatorname{\mathcal{C}}$ admits a right adjoint.

If these conditions are satisfied, then the right adjoint of $U$ is given on objects by the construction $Y \mapsto X \times Y$.

Proof. If $Y$ is an object of $\operatorname{\mathcal{C}}$, then a product $X \times Y$ (if it exists) can be identified with a final object of the $\infty $-category $\operatorname{\mathcal{C}}_{/X} \times _{ \operatorname{\mathcal{C}}} \operatorname{\mathcal{C}}_{/Y}$. The equivalence of $(1)$ and $(2)$ is therefore a special case of the criterion of Corollary 6.2.4.2. $\square$

Example 7.6.1.13 (Homotopy Products). Let $\operatorname{\mathcal{C}}$ be a locally Kan simplicial category, and let $\{ q_ i: Y \rightarrow Y_ i \} _{i \in I}$ be a collection of morphisms in $\operatorname{\mathcal{C}}$. By virtue of Theorem 4.6.8.5 (and Proposition 4.6.9.19), the following conditions are equivalent:

$(1)$

The morphisms $q_ i$ exhibit $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the $\infty $-category $\operatorname{N}_{\bullet }^{\operatorname{hc}}(\operatorname{\mathcal{C}})$.

$(2)$

For every object $X \in \operatorname{\mathcal{C}}$, composition with the morphisms $q_ i$ determines a homotopy equivalence of Kan complexes

\[ \operatorname{Hom}_{\operatorname{\mathcal{C}}}(X,Y)_{\bullet } \rightarrow {\prod }_{i \in I} \operatorname{Hom}_{\operatorname{\mathcal{C}}}( X, Y_ i )_{\bullet }. \]

Example 7.6.1.14 (Products in $\operatorname{\mathcal{S}}$). Let $\{ Y_ i \} _{i \in I}$ be a collection of Kan complexes and let $Y = {\prod }_{i \in I } Y_ i$ denote their product, formed in the ordinary category of simplicial sets. For each $i \in I$, let $q_ i: Y \rightarrow Y_ i$ denote the projection map. Applying Example 7.6.1.13 to the simplicial category category $\operatorname{Kan}$, we deduce that the morphisms $q_ i$ also exhibit $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the $\infty $-category of spaces $\operatorname{\mathcal{S}}= \operatorname{N}_{\bullet }^{\operatorname{hc}}( \operatorname{Kan})$. Similarly, if $Y' = {\coprod }_{i \in I} Y_ i$ is the coproduct of the collection $\{ Y_ i \} _{i \in I}$ in the ordinary category of simplicial sets, then the inclusion maps $Y_ i \hookrightarrow Y'$ exhibit $Y'$ as a coproduct of $\{ Y_ i \} _{i \in I}$ in the $\infty $-category $\operatorname{\mathcal{S}}$.

Example 7.6.1.15 (Products in $\operatorname{\mathcal{QC}}$). Let $\{ \operatorname{\mathcal{C}}_ i \} _{i \in I}$ be a collection of $\infty $-categories and let $\operatorname{\mathcal{C}}= {\prod }_{i \in I } \operatorname{\mathcal{C}}_ i$ denote their product, formed in the ordinary category of simplicial sets. For each $i \in I$, let $q_ i: \operatorname{\mathcal{C}}\rightarrow \operatorname{\mathcal{C}}_ i$ denote the projection map. Applying Example 7.6.1.13 to the simplicial category $\operatorname{QCat}$ (see Construction 5.5.4.1), we deduce that the morphisms $q_ i$ also exhibit $\operatorname{\mathcal{C}}$ as a product of the collection $\{ \operatorname{\mathcal{C}}_ i \} _{i \in I}$ in the $\infty $-category $\operatorname{\mathcal{QC}}= \operatorname{N}_{\bullet }^{\operatorname{hc}}( \operatorname{QCat})$ (this is a special case of the diffraction criterion of Theorem 7.4.1.1). Similarly, if $\operatorname{\mathcal{C}}' = {\coprod }_{i \in I} \operatorname{\mathcal{C}}_ i$ is the coproduct of the collection $\{ \operatorname{\mathcal{C}}_ i \} _{i \in I}$ in the ordinary category of simplicial sets, then the inclusion maps $\operatorname{\mathcal{C}}_ i \hookrightarrow \operatorname{\mathcal{C}}'$ exhibit $\operatorname{\mathcal{C}}'$ as a coproduct of $\{ \operatorname{\mathcal{C}}_ i \} _{i \in I}$ in the $\infty $-category $\operatorname{QCat}$ (this is a special case of the refraction criterion of Theorem 7.4.3.6).

Example 7.6.1.16 (Products in a Duskin Nerve). Let $\operatorname{\mathcal{C}}$ be a $(2,1)$-category and let $\{ q_ i: Y \rightarrow Y_ i \} $ be a collection of $1$-morphisms in $\operatorname{\mathcal{C}}$. Then the following conditions are equivalent:

$(1)$

The morphisms $q_ i$ exhibit $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the $\infty $-category $\operatorname{N}_{\bullet }^{\operatorname{D}}(\operatorname{\mathcal{C}})$.

$(2)$

For every object $X \in \operatorname{\mathcal{C}}$, horizontal composition with the $1$-morphisms $q_ i$ induces an equivalence of categories

\[ \underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}(X,Y) \rightarrow {\prod }_{i \in I} \underline{\operatorname{Hom}}_{\operatorname{\mathcal{C}}}(X, Y_ i ). \]

This follows from the explicit description of pinched morphism spaces in $\operatorname{N}_{\bullet }^{\operatorname{D}}(\operatorname{\mathcal{C}})$ supplied by Example 4.6.5.13.

Example 7.6.1.17 (Products in a Differential Graded Nerve). Let $\operatorname{\mathcal{C}}$ be a differential graded category and let $\{ q_ i: Y \rightarrow Y_ i \} $ be a collection of morphisms in the underlying category of $\operatorname{\mathcal{C}}$ (that is, each $q_ i$ is a $0$-cycle of the chain complex $\operatorname{Hom}_{\operatorname{\mathcal{C}}}(Y, Y_ i)_{\ast }$). Using Example 4.6.5.15 (together with Exercise 3.2.2.22), we see that the following conditions are equivalent:

$(1)$

The morphisms $q_ i$ exhibit $Y$ as a product of the collection $\{ Y_ i \} _{i \in I}$ in the $\infty $-category $\operatorname{N}_{\bullet }^{\operatorname{dg}}(\operatorname{\mathcal{C}})$.

$(2)$

For every object $X \in \operatorname{\mathcal{C}}$, the map of chain complexes

\[ \operatorname{Hom}_{\operatorname{\mathcal{C}}}(X,Y)_{\ast } \rightarrow {\prod }_{i \in I} \operatorname{Hom}_{\operatorname{\mathcal{C}}}(X,Y_ i)_{\ast } \]

induces an isomorphism on homology in degrees $\geq 0$.

Proposition 7.6.1.18 (Rewriting Limits as Products). Let $\operatorname{\mathcal{C}}$ be an $\infty $-category, and let $\{ f_ i: K_ i \rightarrow \operatorname{\mathcal{C}}\} _{i \in I}$ be a collection of diagrams, each of which admits a limit $X_ i = \varprojlim (f_ i)$. Set $K = {\coprod }_{i \in I} K_ i$, so that the collection $\{ f_ i \} _{i \in I}$ determines a diagram $f: K \rightarrow \operatorname{\mathcal{C}}$. Then an object of $\operatorname{\mathcal{C}}$ is a limit of the diagram $f$ if it is a product of the collection of objects $\{ X_ i \} _{i \in I}$.

Proof. This is a special case of (the dual of) Proposition 7.5.8.12. $\square$

Remark 7.6.1.19. In the situation of Proposition 7.6.1.18, let $F: \operatorname{\mathcal{C}}\rightarrow \operatorname{\mathcal{D}}$ be a functor which preserves the limits of each of the diagrams $f_ i$. Suppose that the collection $\{ X_ i \} _{i \in I}$ admits a product in $\operatorname{\mathcal{C}}$. Then the product of $\{ X_ i \} _{i \in I}$ is preserved by the functor $F$ if and only if the limit of $f$ is preserved by the functor $F$.

Corollary 7.6.1.20. Let $\{ K_ i \} _{i \in I}$ be a collection of simplicial sets having coproduct $K = {\coprod }_{i \in I} K_ i$, and let $\operatorname{\mathcal{C}}$ be an $\infty $-category. Suppose that $\operatorname{\mathcal{C}}$ admits $I$-indexed products and $K_ i$-indexed limits for each $i \in I$. Then $\operatorname{\mathcal{C}}$ admits $K$-indexed limits. Moreover, if $F: \operatorname{\mathcal{C}}\rightarrow \operatorname{\mathcal{D}}$ is a functor which preserves $I$-indexed products and $K_ i$-indexed colimits for each $i \in I$, then $F$ also preserves $K$-indexed limits.

Corollary 7.6.1.21. Let $\operatorname{\mathcal{C}}$ be an $\infty $-category. Then $\operatorname{\mathcal{C}}$ admits finite products if and only if it satisfies the following pair of conditions:

$(1)$

The $\infty $-category $\operatorname{\mathcal{C}}$ has a final object ${\bf 1}$.

$(2)$

The $\infty $-category $\operatorname{\mathcal{C}}$ admits pairwise products. That is, every pair of objects $X,Y \in \operatorname{\mathcal{C}}$ have a product $X \times Y$ in $\operatorname{\mathcal{C}}$.

Proof. The necessity of conditions $(1)$ and $(2)$ is clear (see Example 7.6.1.8). Conversely, suppose that $(1)$ and $(2)$ are satisfied, and let $I$ be a finite set. We wish to show that $\operatorname{\mathcal{C}}$ admits $I$-indexed limits. We proceed by induction on the cardinality of $I$. If $I$ is empty, then the desired result follows from assumption $(1)$. If $I$ is a singleton, then the desired result is obvious (see Example 7.6.1.9). Otherwise, we can write $I$ as a disjoint union of proper subsets $I_{-}, I_{+} \subset I$. Our inductive hypothesis then guarantees that $\operatorname{\mathcal{C}}$ admits $I_{-}$-indexed limits and $I_{+}$-indexed limits. Combining assumption $(2)$ with Corollary 7.6.1.20, we deduce that $\operatorname{\mathcal{C}}$ admits limits indexed by $I = I_{-} \coprod I_{+}$. $\square$

Remark 7.6.1.22. Let $F: \operatorname{\mathcal{C}}\rightarrow \operatorname{\mathcal{D}}$ be a functor of $\infty $-categories, where $\operatorname{\mathcal{C}}$ admits finite products. Then $F$ preserves finite products if and only if it preserves final objects and pairwise products.