[proofplan]
We prove the defining properties of a symmetric $2$-$(v,k,\lambda)$ design for the dual incidence structure. First we count the dual points and dual blocks, which are the original blocks and original points. Then we show that every dual block has size $k$ by proving that each original point is incident with exactly $k$ original blocks. Finally we prove that any two distinct dual points lie in exactly $\lambda$ dual blocks by deriving the standard block-intersection property for symmetric designs directly from incidence counting.
[/proofplan]
[step:Define the dual incidence structure and count its points and blocks]
Let $\mathcal{D} = (P,\mathcal{B},I)$ be a symmetric nondegenerate $2$-$(v,k,\lambda)$ design. Thus $|P| = v$, $|\mathcal{B}| = v$, $v>1$, $k\ge 2$, each block $B \in \mathcal{B}$ is incident with exactly $k$ points of $P$, and any two distinct points of $P$ are incident with exactly $\lambda$ common blocks.
Define the dual point set $P^*$ by $P^* := \mathcal{B}$, define the dual block set $\mathcal{B}^*$ by $\mathcal{B}^* := P$, and define the dual incidence relation $I^* \subset P^* \times \mathcal{B}^*$ by
\begin{align*}
B \, I^* \, x \quad \Longleftrightarrow \quad x \, I \, B
\end{align*}
for $B \in \mathcal{B}$ and $x \in P$. Since $|\mathcal{B}| = |P| = v$, the dual structure has exactly $v$ points and exactly $v$ blocks.
[/step]
[step:Show that every original point is incident with exactly $k$ blocks]
For $x \in P$, let
\begin{align*}
r_x := |\{B \in \mathcal{B} : x \, I \, B\}|
\end{align*}
denote the number of blocks incident with $x$. We prove that $r_x = k$ for every $x \in P$.
Fix $x \in P$. Count the set
\begin{align*}
S_x := \{(y,B) \in (P \setminus \{x\}) \times \mathcal{B} : x \, I \, B \text{ and } y \, I \, B\}.
\end{align*}
Counting first by the point $y$, each of the $v-1$ choices of $y \in P \setminus \{x\}$ lies with $x$ in exactly $\lambda$ common blocks, so
\begin{align*}
|S_x| = \lambda(v-1).
\end{align*}
Counting first by the block $B$, each of the $r_x$ blocks incident with $x$ contains exactly $k-1$ other points, so
\begin{align*}
|S_x| = r_x(k-1).
\end{align*}
Hence
\begin{align*}
r_x(k-1) = \lambda(v-1).
\end{align*}
Now count the full incidence set
\begin{align*}
T := \{(x,B) \in P \times \mathcal{B} : x \, I \, B\}.
\end{align*}
Counting by blocks gives $|T| = vk$, because there are $v$ blocks and each contains $k$ points. Counting by points gives
\begin{align*}
|T| = \sum_{x \in P} r_x.
\end{align*}
Since $k\ge 2$, we have $k-1>0$. Therefore the identity $r_x(k-1)=\lambda(v-1)$ shows that $r_x$ is independent of $x$; write this common value as $r$. Then $vr = vk$, and since $v>0$, we obtain $r = k$. Thus every point of $P$ is incident with exactly $k$ blocks.
[guided]
The dual blocks are the original points, so their sizes in the dual are controlled by how many original blocks pass through a fixed original point. We therefore introduce, for each $x \in P$, the number
\begin{align*}
r_x := |\{B \in \mathcal{B} : x \, I \, B\}|.
\end{align*}
Our goal in this step is to prove $r_x = k$.
Fix $x \in P$. The most efficient way to determine $r_x$ is to count the same finite set in two ways. Define
\begin{align*}
S_x := \{(y,B) \in (P \setminus \{x\}) \times \mathcal{B} : x \, I \, B \text{ and } y \, I \, B\}.
\end{align*}
This set records a choice of a point $y \ne x$ together with a block containing both $x$ and $y$.
First count $S_x$ by choosing $y$. For each of the $v-1$ points $y \in P \setminus \{x\}$, the definition of a $2$-$(v,k,\lambda)$ design says that $x$ and $y$ lie together in exactly $\lambda$ blocks. Hence
\begin{align*}
|S_x| = \lambda(v-1).
\end{align*}
Now count $S_x$ by choosing $B$. There are $r_x$ blocks incident with $x$. Once such a block $B$ is chosen, it contains exactly $k$ points, one of which is $x$, so it contributes exactly $k-1$ choices for $y \ne x$. Hence
\begin{align*}
|S_x| = r_x(k-1).
\end{align*}
Equating the two counts gives
\begin{align*}
r_x(k-1) = \lambda(v-1).
\end{align*}
Because the design is nondegenerate, $k\ge 2$, so $k-1>0$. The right-hand side is independent of $x$, and division by the fixed positive integer $k-1$ shows that $r_x$ is the same for every $x \in P$; call this common value $r$.
It remains to identify $r$. Count the incidence set
\begin{align*}
T := \{(x,B) \in P \times \mathcal{B} : x \, I \, B\}.
\end{align*}
Counting by blocks gives $|T| = vk$, since there are $v$ blocks and each block is incident with exactly $k$ points. Counting by points gives $|T| = vr$, since each of the $v$ points is incident with exactly $r$ blocks. Therefore
\begin{align*}
vr = vk.
\end{align*}
Since $v>0$, we obtain $r=k$. Thus every original point is incident with exactly $k$ original blocks.
[/guided]
[/step]
[step:Show that any two original blocks meet in exactly $\lambda$ points]
Let $B_1,B_2 \in \mathcal{B}$ be distinct blocks. Define
\begin{align*}
m := |\{x \in P : x \, I \, B_1 \text{ and } x \, I \, B_2\}|
\end{align*}
to be the number of common points of $B_1$ and $B_2$. We prove $m=\lambda$.
Let
\begin{align*}
U := \{(x,B) \in P \times (\mathcal{B} \setminus \{B_1\}) : x \, I \, B_1 \text{ and } x \, I \, B\}.
\end{align*}
Counting by points $x$ incident with $B_1$, there are $k$ choices for $x$, and each such $x$ is incident with exactly $k-1$ blocks other than $B_1$. Hence
\begin{align*}
|U| = k(k-1).
\end{align*}
Counting by blocks $B \ne B_1$, the contribution of $B$ is $|B \cap B_1|$, interpreted through the incidence relation. Therefore
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} |B \cap B_1| = k(k-1).
\end{align*}
Next count the set
\begin{align*}
V := \{(x,y,B) \in P \times P \times (\mathcal{B}\setminus\{B_1\}) : x \ne y,\ x \, I \, B_1,\ y \, I \, B_1,\ x \, I \, B,\ y \, I \, B\}.
\end{align*}
Counting by ordered pairs $(x,y)$ of distinct points of $B_1$, there are $k(k-1)$ such pairs, and for each pair there are exactly $\lambda-1$ blocks other than $B_1$ containing both. Hence
\begin{align*}
|V| = k(k-1)(\lambda-1).
\end{align*}
Counting by $B \ne B_1$, if $a_B := |B \cap B_1|$, then $B$ contributes $a_B(a_B-1)$ ordered pairs. Thus
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} a_B(a_B-1) = k(k-1)(\lambda-1).
\end{align*}
Together with
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} a_B = k(k-1),
\end{align*}
adding the two displayed identities gives
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} a_B^2 = k(k-1)(\lambda-1)+k(k-1).
\end{align*}
Simplifying the right-hand side gives
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} a_B^2 = \lambda k(k-1).
\end{align*}
For $B=B_2$, $a_{B_2}=m$. The preceding identities imply that every $a_B$ has average
\begin{align*}
\frac{k(k-1)}{v-1}.
\end{align*}
From the relation $k(k-1)=\lambda(v-1)$ obtained in the previous step from $r=k$, this average is $\lambda$. Also, by expanding each square and summing over the $v-1$ blocks in $\mathcal{B}\setminus\{B_1\}$, we get
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} (a_B-\lambda)^2 = \sum_{B \in \mathcal{B}\setminus\{B_1\}} a_B^2 -2\lambda \sum_{B \in \mathcal{B}\setminus\{B_1\}} a_B +(v-1)\lambda^2.
\end{align*}
Substituting the two computed sums gives
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} (a_B-\lambda)^2 = \lambda k(k-1)-2\lambda k(k-1)+(v-1)\lambda^2.
\end{align*}
Combining the first two terms gives
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} (a_B-\lambda)^2 = -\lambda k(k-1)+(v-1)\lambda^2.
\end{align*}
Using $k(k-1)=\lambda(v-1)$, the right-hand side is $0$, so
\begin{align*}
\sum_{B \in \mathcal{B}\setminus\{B_1\}} (a_B-\lambda)^2 = 0.
\end{align*}
Since each summand $(a_B-\lambda)^2$ is a nonnegative integer, each summand is $0$. In particular, $m=a_{B_2}=\lambda$.
[/step]
[step:Verify the defining conditions for the dual design]
A dual block is an element $x \in \mathcal{B}^*=P$, and its incident dual points are precisely
\begin{align*}
\{B \in P^* : B \, I^* \, x\}
=
\{B \in \mathcal{B} : x \, I \, B\}.
\end{align*}
By the second step, this set has cardinality $k$. Hence every dual block has size $k$.
Let $B_1,B_2 \in P^*=\mathcal{B}$ be distinct dual points. The dual blocks incident with both $B_1$ and $B_2$ are precisely
\begin{align*}
\{x \in \mathcal{B}^* : B_1 \, I^* \, x \text{ and } B_2 \, I^* \, x\}
=
\{x \in P : x \, I \, B_1 \text{ and } x \, I \, B_2\}.
\end{align*}
By the third step, this set has cardinality $\lambda$. Thus any two distinct dual points lie in exactly $\lambda$ dual blocks.
The dual incidence structure has $v$ points, $v$ blocks, every block has size $k$, and every pair of distinct points lies in exactly $\lambda$ blocks. Therefore $\mathcal{D}^*$ is a symmetric $2$-$(v,k,\lambda)$ design.
[/step]