Lemma 8.4.6. Let $\mathcal{C}$ be a site. The $(2, 1)$-category of stacks over $\mathcal{C}$ has 2-fibre products, and they are described as in Categories, Lemma 4.32.3.

Proof. Let $f : \mathcal{X} \to \mathcal{S}$ and $g : \mathcal{Y} \to \mathcal{S}$ be $1$-morphisms of stacks over $\mathcal{C}$ as defined above. The category $\mathcal{X} \times _\mathcal {S} \mathcal{Y}$ described in Categories, Lemma 4.32.3 is a fibred category according to Categories, Lemma 4.33.10. (This is where we use that $f$ and $g$ preserve strongly cartesian morphisms.) It remains to show that the morphism presheaves are sheaves and that descent relative to coverings of $\mathcal{C}$ is effective.

Recall that an object of $\mathcal{X} \times _\mathcal {S} \mathcal{Y}$ is given by a quadruple $(U, x, y, \phi )$. It lies over the object $U$ of $\mathcal{C}$. Next, let $(U, x', y', \phi ')$ be second object lying over $U$. Recall that $\phi : f(x) \to g(y)$, and $\phi ' : f(x') \to g(y')$ are isomorphisms in the category $\mathcal{S}_ U$. Let us use these isomorphisms to identify $z = f(x) = g(y)$ and $z' = f(x') = g(y')$. With this identifications it is clear that

$\mathit{Mor}((U, x, y, \phi ), (U, x', y', \phi ')) = \mathit{Mor}(x, x') \times _{\mathit{Mor}(z, z')} \mathit{Mor}(y, y')$

as presheaves. However, as the fibred product in the category of presheaves preserves sheaves (Sites, Lemma 7.10.1) we see that this is a sheaf.

Let $\mathcal{U} = \{ f_ i : U_ i \to U\} _{i \in I}$ be a covering of the site $\mathcal{C}$. Let $(X_ i, \chi _{ij})$ be a descent datum in $\mathcal{X} \times _\mathcal {S} \mathcal{Y}$ relative to $\mathcal{U}$. Write $X_ i = (U_ i, x_ i, y_ i, \phi _ i)$ as above. Write $\chi _{ij} = (\varphi _{ij}, \psi _{ij})$ as in the definition of the category $\mathcal{X} \times _\mathcal {S} \mathcal{Y}$ (see Categories, Lemma 4.32.3). It is clear that $(x_ i, \varphi _{ij})$ is a descent datum in $\mathcal{X}$ and that $(y_ i, \psi _{ij})$ is a descent datum in $\mathcal{Y}$. Since $\mathcal{X}$ and $\mathcal{Y}$ are stacks these descent data are effective. Thus we get $x \in \mathop{\mathrm{Ob}}\nolimits (\mathcal{X}_ U)$, and $y \in \mathop{\mathrm{Ob}}\nolimits (\mathcal{Y}_ U)$ with $x_ i = x|_{U_ i}$, and $y_ i = y|_{U_ i}$ compatibly with descent data. Set $z = f(x)$ and $z' = g(y)$ which are both objects of $\mathcal{S}_ U$. The morphisms $\phi _ i$ are elements of $\mathit{Isom}(z, z')(U_ i)$ with the property that $\phi _ i|_{U_ i \times _ U U_ j} = \phi _ j|_{U_ i \times _ U U_ j}$. Hence by the sheaf property of $\mathit{Isom}(z, z')$ we obtain an isomorphism $\phi : z = f(x) \to z' = g(y)$. We omit the verification that the canonical descent datum associated to the object $(U, x, y, \phi )$ of $(\mathcal{X} \times _\mathcal {S} \mathcal{Y})_ U$ is isomorphic to the descent datum we started with. $\square$

In your comment you can use Markdown and LaTeX style mathematics (enclose it like $\pi$). A preview option is available if you wish to see how it works out (just click on the eye in the toolbar).