[step:Prove the two-step preservation lemma for ccc forcing][claim:Two-step ccc preservation]
Let $P$ be a ccc forcing notion, and let $\dot{Q}$ be a $P$-name such that
\begin{align*}
1_P\Vdash_P ``\dot{Q}\text{ is ccc}''.
\end{align*}
Then the two-step iteration $P*\dot{Q}$ is ccc.
[/claim]
[proof]
Let $\omega_1$ denote the first uncountable ordinal. Suppose, toward a contradiction, that
\begin{align*}
A=\{(p_\xi,\dot{q}_\xi):\xi<\omega_1\}
\end{align*}
is an uncountable antichain in $P*\dot{Q}$. Here each $p_\xi\in P$ and each $\dot{q}_\xi$ is a $P$-name such that
\begin{align*}
p_\xi\Vdash_P ``\dot{q}_\xi\in \dot{Q}''.
\end{align*}
We first use the following standard ccc capture fact. If $P$ is ccc and $\{p_\xi:\xi<\omega_1\}\subset P$, then there is a condition $p_*\in P$ such that
\begin{align*}
p_*\Vdash_P ``\{\xi<\omega_1:p_\xi\in \dot{G}\}\text{ is uncountable}''.
\end{align*}
We prove the capture fact, using the standard ccc preservation fact that ccc forcing preserves $\omega_1$ and, equivalently here, whenever a condition forces a subset of the ground-model ordinal $\omega_1$ to be countable, some stronger condition forces that subset to be bounded below a ground-model countable ordinal. This preservation fact applies because $P$ is ccc.
Indeed, if no such $p_*$ existed, then for every $p\in P$, the condition $p$ would fail to force that $\{\xi<\omega_1:p_\xi\in\dot G\}$ is uncountable. Hence some $p'\leq_P p$ would force this set to be countable. By the ccc preservation and bounding fact just stated, there would be some $r\leq_P p'$ and some $\delta<\omega_1$ such that
\begin{align*}
r\Vdash_P ``\{\xi<\omega_1:p_\xi\in\dot G\}\subset\delta''.
\end{align*}
Equivalently, $r$ is incompatible with every $p_\xi$ for $\xi\geq\delta$: if $r$ had a common strengthening with such a $p_\xi$, that strengthening would force $p_\xi\in\dot G$, contradicting the displayed statement. Let $M\subset P$ be a maximal antichain of conditions $r$ for which such a countable ordinal $\delta_r<\omega_1$ exists. Since $P$ is ccc, $M$ is countable. For each $r\in M$, choose $\delta_r<\omega_1$ such that $r$ is incompatible with every $p_\xi$ for $\xi\geq\delta_r$, and define
\begin{align*}
\delta_*=\sup\{\delta_r:r\in M\}<\omega_1.
\end{align*}
For any $\xi\geq\delta_*$, the condition $p_\xi$ is incompatible with every $r\in M$, contradicting the maximality of $M$. This proves the capture fact.
Apply the capture fact to $\{p_\xi:\xi<\omega_1\}$. Let $\dot{G}$ denote the canonical $P$-name for the $P$-generic filter. Choose $p_*\in P$ such that
\begin{align*}
p_*\Vdash_P ``I=\{\xi<\omega_1:p_\xi\in \dot{G}\}\text{ is uncountable}''.
\end{align*}
In any $P$-generic extension containing $p_*$, consider the indexed family
\begin{align*}
(\dot{q}_\xi^{\dot{G}})_{\xi\in I}.
\end{align*}
We show that its distinct-index members are pairwise incompatible in $\dot{Q}^{\dot{G}}$. Since a condition is compatible with itself, pairwise incompatibility for distinct indices implies that the values are distinct; hence the set
\begin{align*}
B=\{\dot{q}_\xi^{\dot{G}}:\xi\in I\}
\end{align*}
is uncountable and is an antichain in $\dot{Q}^{\dot{G}}$. To prove pairwise incompatibility, take distinct $\xi,\eta\in I$. Then $p_\xi$ and $p_\eta$ both belong to the generic filter, so they have a common strengthening in the generic filter. If $\dot{q}_\xi^{\dot{G}}$ and $\dot{q}_\eta^{\dot{G}}$ were compatible in $\dot{Q}^{\dot{G}}$, the [forcing theorem](/theorems/6531) would give a condition $r\leq_P p_\xi,p_\eta$ and a $P$-name $\dot{s}$ such that
\begin{align*}
r\Vdash_P ``\dot{s}\leq_{\dot{Q}}\dot{q}_\xi\text{ and }\dot{s}\leq_{\dot{Q}}\dot{q}_\eta''.
\end{align*}
Then $(r,\dot{s})$ would be a common strengthening of $(p_\xi,\dot{q}_\xi)$ and $(p_\eta,\dot{q}_\eta)$ in $P*\dot{Q}$, contradicting that $A$ is an antichain.
Thus $p_*$ forces that $\dot{Q}$ contains an uncountable antichain, contradicting
\begin{align*}
1_P\Vdash_P ``\dot{Q}\text{ is ccc}''.
\end{align*}
Therefore $P*\dot{Q}$ is ccc.
[/proof][/step]