Hybrid Sequence:
Starting with $\lib{pk-cpa-real}$,
we can immediately apply the CPA-security of $\Sigma_{\text{pke}}$. The simple three-hop maneuver is not shown.
With the ephemeral key $\key$ no longer used except to encrypt $\ptxt$, we can apply the one-time secrecy property. Again, the three-hop maneuver is not shown, and the result is $\lib{pk-cpa-rand}$, completing the proof.
$\lib{pk-cpa-real}$
$(\pk,\sk) \gets \Sigma_{\text{pke}}.\KeyGen$
$\cpapk$( ):
return $\pk$
$\cpaenc$($\ptxt$):
// $\Sigma_{hyb}.\Enc$:
$\key \gets \Sigma_{\text{ske}}.\K$
$\ctxt_{\text{pke}} $
${}:= \Sigma_{\text{pke}}.\Enc(\pk,\key)$
${}\gets \Sigma_{\text{pke}}.\C$
$\ctxt_{\text{ske}} $
${}:= \Sigma_{\text{ske}}.\Enc(\key,\ptxt)$
${}\gets \Sigma_{\text{ske}}.\C( |\ptxt| )$
return $(\ctxt_{\text{pke}}, \ctxt_{\text{ske}})$