[proofplan]
We construct a descending sequence of conditions, beginning at the prescribed condition $p_0$, and at stage $n$ choose a strengthening lying in the dense set $D_n$. The desired filter is the upward closure, in the forcing order, of this sequence. Upward closure is built into the definition of $G$, directedness follows because any two members of $G$ are both weakened by sufficiently late elements of the descending sequence, and the choice at stage $n$ guarantees that $G$ meets $D_n$.
[/proofplan]
[step:Construct a descending sequence meeting the dense sets]
Define a sequence
\begin{align*}
p:\omega \to \mathbb P
\end{align*}
recursively as follows. Set $p(0) := p_0$. Suppose $n \in \omega$ and $p(n) \in \mathbb P$ have been chosen. Since $D_n$ is dense in $\mathbb P$, there exists $q \in D_n$ such that $q \leq p(n)$. Choose one such $q$ and define $p(n+1) := q$.
For each $n \in \omega$, write $p_n := p(n)$. Then the construction gives
\begin{align*}
p_{n+1} \leq p_n
\end{align*}
and
\begin{align*}
p_{n+1} \in D_n.
\end{align*}
[guided]
The goal is to arrange, one dense set at a time, that the eventual filter contains a condition from that dense set. Since $D_n$ is dense, every current condition can be strengthened to a condition in $D_n$. This is why we build a descending sequence.
Define a map
\begin{align*}
p:\omega \to \mathbb P
\end{align*}
by recursion. The initial value is fixed by the theorem:
\begin{align*}
p(0) := p_0.
\end{align*}
Now assume $n \in \omega$ and $p(n) \in \mathbb P$ have already been defined. The density hypothesis for $D_n$ says that, for this particular condition $p(n)$, there exists $q \in D_n$ satisfying $q \leq p(n)$. Choose such a condition $q$ and set
\begin{align*}
p(n+1) := q.
\end{align*}
Writing $p_n := p(n)$, we have two conclusions at every stage $n \in \omega$. First, the sequence is descending in the forcing order:
\begin{align*}
p_{n+1} \leq p_n.
\end{align*}
Second, the condition chosen at the next stage lies in the required dense set:
\begin{align*}
p_{n+1} \in D_n.
\end{align*}
Thus the sequence is designed so that the condition $p_{n+1}$ will later witness that the filter meets $D_n$.
[/guided]
[/step]
[step:Define the filter as the upward closure of the sequence]
Define
\begin{align*}
G := \{q \in \mathbb P : \text{there exists } n \in \omega \text{ such that } p_n \leq q\}.
\end{align*}
Since $p_0 \leq p_0$, we have $p_0 \in G$, so $G$ is nonempty.
[/step]
[step:Verify upward closure]
Let $q \in G$ and let $r \in \mathbb P$ satisfy $q \leq r$. By the definition of $G$, there exists $n \in \omega$ such that $p_n \leq q$. By transitivity of $\leq$,
\begin{align*}
p_n \leq r.
\end{align*}
Therefore $r \in G$. Hence $G$ is upward closed.
[/step]
[step:Verify directedness using a later condition in the descending sequence]
Let $q,r \in G$. By the definition of $G$, choose $i,j \in \omega$ such that $p_i \leq q$ and $p_j \leq r$. Let $k := \max\{i,j\}$. Since the sequence is descending, repeated transitivity gives
\begin{align*}
p_k \leq p_i
\end{align*}
and
\begin{align*}
p_k \leq p_j.
\end{align*}
Combining these inequalities with $p_i \leq q$ and $p_j \leq r$, transitivity gives
\begin{align*}
p_k \leq q
\end{align*}
and
\begin{align*}
p_k \leq r.
\end{align*}
Also $p_k \in G$, because $p_k \leq p_k$. Thus $G$ is directed.
[/step]
[step:Show that the filter meets every dense set]
Let $n \in \omega$. By construction,
\begin{align*}
p_{n+1} \in D_n.
\end{align*}
Also $p_{n+1} \in G$, because $p_{n+1} \leq p_{n+1}$. Hence
\begin{align*}
p_{n+1} \in G \cap D_n.
\end{align*}
Therefore $G \cap D_n \neq \varnothing$ for every $n \in \omega$. Combining this with the previous steps, $G$ is a filter containing $p_0$ and meeting every dense set $D_n$.
[/step]