[proofplan]
We argue by contradiction. If some condition forced a countable cofinal sequence in $\omega_1^V$, then for each natural number $n$ we use maximal antichains below that condition to collect all possible forced values of the $n$-th term. The ccc hypothesis makes each such antichain countable, so the union of all possible values is a [countable set](/page/Countable%20Set) of ordinals in $V$. Its supremum is still below $\omega_1^V$, contradicting the forced cofinality of the alleged sequence.
[/proofplan]
[step:Assume a condition forces a countable cofinal sequence through $\omega_1^V$]
We write the order on $\mathbb P$ so that $q \leq p$ means that $q$ is stronger than $p$. Suppose, toward a contradiction, that there exist a condition $p \in \mathbb P$ and a $\mathbb P$-name $\dot f \in V$ such that
\begin{align*}
p \Vdash_{\mathbb P} \dot f: \check{\omega} \to \check{\omega}_1^V \text{ has cofinal range in } \check{\omega}_1^V.
\end{align*}
Thus $p$ forces that for every ordinal $\alpha < \omega_1^V$ there exists $n \in \omega$ with $\dot f(n) > \alpha$.
[/step]
[step:Build countable antichains deciding each value of the name]
For each $n \in \omega$, define the dense set below $p$
\begin{align*}
D_n := \{q \in \mathbb P : q \leq p \text{ and there exists } \alpha_q < \omega_1^V \text{ such that } q \Vdash_{\mathbb P} \dot f(\check n) = \check{\alpha}_q\}.
\end{align*}
The set $D_n$ is dense below $p$: if $r \leq p$, then because $p$ forces $\dot f(\check n) \in \check{\omega}_1^V$, some extension $q \leq r$ decides the ordinal value of $\dot f(\check n)$.
Choose a maximal antichain $A_n \subset D_n$ below $p$. Since $\mathbb P$ is ccc, $A_n$ is countable in $V$. For each $q \in A_n$, fix the unique ordinal $\alpha_{n,q} < \omega_1^V$ such that
\begin{align*}
q \Vdash_{\mathbb P} \dot f(\check n) = \check{\alpha}_{n,q}.
\end{align*}
[guided]
Fix $n \in \omega$. We want to list all possible values that the $n$-th coordinate of $\dot f$ can take, as far as conditions below $p$ can force them. Define
\begin{align*}
D_n := \{q \in \mathbb P : q \leq p \text{ and there exists } \alpha_q < \omega_1^V \text{ such that } q \Vdash_{\mathbb P} \dot f(\check n) = \check{\alpha}_q\}.
\end{align*}
This is the set of all extensions of $p$ that decide the value of $\dot f(\check n)$ as a ground-model ordinal below $\omega_1^V$.
We verify density below $p$. Let $r \leq p$ be any condition. Since
\begin{align*}
p \Vdash_{\mathbb P} \dot f: \check{\omega} \to \check{\omega}_1^V,
\end{align*}
the stronger condition $r$ also forces $\dot f(\check n) \in \check{\omega}_1^V$. By the definition of the forcing relation for names, there is an extension $q \leq r$ and an ordinal $\alpha_q < \omega_1^V$ such that
\begin{align*}
q \Vdash_{\mathbb P} \dot f(\check n) = \check{\alpha}_q.
\end{align*}
Hence $q \in D_n$, proving that $D_n$ is dense below $p$.
Now choose a maximal antichain $A_n \subset D_n$ below $p$. The point of choosing an antichain is that mutually incompatible conditions cannot both appear in a generic filter, while maximality ensures that every generic filter containing $p$ meets the downward closure of $A_n$. Since $\mathbb P$ has the countable chain condition, every antichain in $\mathbb P$ is countable in $V$; therefore $A_n$ is countable in $V$. For each $q \in A_n$, choose the unique ordinal $\alpha_{n,q} < \omega_1^V$ satisfying
\begin{align*}
q \Vdash_{\mathbb P} \dot f(\check n) = \check{\alpha}_{n,q}.
\end{align*}
Uniqueness follows because no condition can force two distinct ordinal values for the same name.
[/guided]
[/step]
[step:Collect all possible decided values into one countable ground-model set]
Define the ground-model set of ordinals
\begin{align*}
B := \{\alpha_{n,q} : n \in \omega \text{ and } q \in A_n\}.
\end{align*}
Each $A_n$ is countable in $V$, and $\omega$ is countable in $V$, so $B$ is countable in $V$. Since $B \subset \omega_1^V$, define
\begin{align*}
\gamma := \sup B.
\end{align*}
Because $\omega_1^V$ is the first uncountable ordinal in $V$ and $B$ is countable in $V$, we have $\gamma < \omega_1^V$.
[/step]
[step:Show the original condition forces the range of the name to be bounded]
We prove that
\begin{align*}
p \Vdash_{\mathbb P} \operatorname{Range}(\dot f) \subseteq \check{\gamma} + 1.
\end{align*}
Fix $n \in \omega$. Since $A_n$ is maximal below $p$, every condition $r \leq p$ is compatible with some $q \in A_n$. Therefore, in every $V$-generic filter $G \subset \mathbb P$ with $p \in G$, the filter $G$ meets the downward closure of $A_n$, and hence contains some member of $A_n$. For that $q \in A_n \cap G$,
\begin{align*}
q \Vdash_{\mathbb P} \dot f(\check n) = \check{\alpha}_{n,q}.
\end{align*}
Thus $\dot f^G(n) = \alpha_{n,q} \in B \subseteq \gamma + 1$. Since $n \in \omega$ was arbitrary, $p$ forces every value of $\dot f$ to lie in $\gamma + 1$.
[/step]
[step:Contradict the forced cofinality in $\omega_1^V$]
Since $\gamma < \omega_1^V$, the ordinal $\gamma + 1$ also belongs to $\omega_1^V$. The condition $p$ forces
\begin{align*}
\operatorname{Range}(\dot f) \subseteq \check{\gamma} + 1,
\end{align*}
so $p$ forces that no value of $\dot f$ is greater than $\check{\gamma} + 1$. This contradicts the earlier assertion that
\begin{align*}
p \Vdash_{\mathbb P} \dot f: \check{\omega} \to \check{\omega}_1^V \text{ has cofinal range in } \check{\omega}_1^V.
\end{align*}
Therefore no such condition $p$ and name $\dot f$ exist. Hence
\begin{align*}
\Vdash_{\mathbb P} \check{\omega}_1^V \text{ is uncountable}.
\end{align*}
This proves that ccc forcing preserves $\omega_1$.
[/step]