[proofplan]
We prove the standard incidence-counting identity for this design directly, avoiding any external citation. The idea is to count the same set of incident point-block pairs in two ways: first by summing over blocks, and then by summing over points. Symmetry gives $|\mathcal B| = |X| = v$, so the resulting equality reduces to $vk = vr$, and cancellation by the positive integer $v$ gives $k = r$.
[/proofplan]
[step:Count point-block incidences by summing over the blocks]
Define the incidence set $I$ by
\begin{align*}
I := \{(x,B) \in X \times \mathcal B : x \in B\}.
\end{align*}
For each block $B \in \mathcal B$, the hypothesis of a $2$-$(v,k,\lambda)$ design gives $|B| = k$. Since $I$ is the disjoint union of the sets $\{(x,B) : x \in B\}$ as $B$ ranges over $\mathcal B$, we obtain
\begin{align*}
|I| = \sum_{B \in \mathcal B} |B| = \sum_{B \in \mathcal B} k = |\mathcal B|\,k.
\end{align*}
[/step]
[step:Count point-block incidences by summing over the points]
For each point $x \in X$, the replication number $r$ is defined so that $x$ lies in exactly $r$ blocks. Equivalently,
\begin{align*}
|\{B \in \mathcal B : x \in B\}| = r.
\end{align*}
Since $I$ is also the disjoint union of the sets $\{(x,B) : B \in \mathcal B,\ x \in B\}$ as $x$ ranges over $X$, we obtain
\begin{align*}
|I| = \sum_{x \in X} |\{B \in \mathcal B : x \in B\}| = \sum_{x \in X} r = |X|\,r = vr.
\end{align*}
[guided]
We are counting the same incidence set
\begin{align*}
I := \{(x,B) \in X \times \mathcal B : x \in B\}
\end{align*}
from the point side rather than from the block side. Fix a point $x \in X$. The replication number $r$ means exactly that the collection of blocks containing $x$ has cardinality $r$:
\begin{align*}
|\{B \in \mathcal B : x \in B\}| = r.
\end{align*}
Now partition $I$ according to its first coordinate. For distinct points $x,y \in X$, the sets of incidences with first coordinate $x$ and first coordinate $y$ are disjoint, and every incidence pair has exactly one first coordinate. Therefore
\begin{align*}
|I|
= \sum_{x \in X} |\{B \in \mathcal B : x \in B\}|
= \sum_{x \in X} r
= |X|\,r.
\end{align*}
Since the design has $v$ points, $|X| = v$, so this becomes
\begin{align*}
|I| = vr.
\end{align*}
This is the same incidence set counted in the previous step, where summing over blocks gave $|I| = |\mathcal B|k$.
[/guided]
[/step]
[step:Use symmetry to cancel the number of points]
The two incidence counts give
\begin{align*}
|\mathcal B|\,k = vr.
\end{align*}
Because $\mathcal D$ is symmetric, $|\mathcal B| = v$, so
\begin{align*}
vk = vr.
\end{align*}
Since $X$ has $v$ points and a $2$-design has a nonempty point set, $v > 0$. Cancelling the positive integer $v$ gives
\begin{align*}
k = r.
\end{align*}
Thus $r = k$, as required.
[/step]