Let us see how code cascades may be useful for decoding. Suppose we
wish to lift the code \(\mathcal {C}_0\)  to \(\mathcal {C}_{\ell }\) , and there is some
\(W(t) \subseteq [n_0]^t\)  such that \(\mathcal {C}_{\ell } = \operatorname{dsum}_{W(t)}(\mathcal {C}_0)\) . In our case of bias boosting, this \(t\)  will depend on the
target bias \(\varepsilon \) . However, the expansion requirement of the
list-decoding framework of [1]} has a poor dependence on
\(t\) . A way to work around this issue is to go from \(\mathcal {C}_0\)  to
\(\mathcal {C}_{\ell }\)  via a code cascade as above such that each \(t_i\)  is a
constant independent of the final bias but \(\prod \limits _{i=1}^{\ell }t_i = t\)  (which means \(\ell \)  depends on \(\varepsilon \) ). The final code
\(\mathcal {C}_{\ell }\)  of the cascade is the same as the code obtained from
length-\((t-1)\)  walks. While decoding will now become an \(\ell \) -level
recursive procedure, the gain from replacing \(t\)  by \(t_i\)  will
outweigh this loss, as we discuss below.
