This follows from the lemma that the intersection of any family of Grothendieck topologies is a Grothendieck topology. We define the supremum to be the intersection of all topologies containing the union (the topology spanned by a family), and we can define the infimum of a family to be the intersection over the family.

Recall that a Grothendieck topology is a function $J$ assigning to each object $x$ of $C$ a set of subfunctors (called covering sieves) of $h_x$ satisfying the following closure properties:

- If $f:x\to y$ is a morphism, and $s\in J(x)$, then $f^*s\in J(y)$
- If $s\in J(x)$, and $t\subseteq h_x$ such that for all $y\in Ob(C)$ and all $f\in s(Y)$, $f^*t\in J(Y)$, then $t\in J(x)$
- For any object $x\in Ob(C)$, $h_x\in J(x)$.

We define the intersection of two (or any family of) topologies $J, K$ to be the pointwise intersection $J(x)\cap K(x)$, viewed as subsets of the set of subfunctors of $h_x$.

To avoid appearing too pedantic, we will refer to Grothendieck topologies as topologies unless there is reason to believe that the reader will be confused.

**Lemma**: The intersection of two topologies is a topology.

*Proof*. We check the conditions:

- If $f:x\to y$ is a morphism, and $s\in K \cap J(x)$, then $f^*s\in K\cap J(y)$ follows immediately.
- If $s\in K\cap J(x)$, and $t\subseteq h_x$ such that for all $y\in Ob(C)$ and all $f\in s(Y)$, $f^*t\in K\cap J(Y)$, then $t\in K\cap J(x)$ follows again by intersection
- That all representables are present in the intersection is immediate.

We can see immediately how this generalizes to any family of topologies. $\Box$

I note that we are ignoring set-theoretic considerations here, since in reality, our proof relies on the fact that the class of subfunctors is a set, but this can be rectified using universes (because I am lazy).