right|&\ge\frac{|AH|}{|X_1|\cdots|X_\ell|}\\
    &\ge\frac{|AH|}{\exp(e^{O(s)}\log^{O(1)}2K)^\ell}\\
    &\ge\frac{|AH|}{\exp(e^{O(s^2)}\log^{O(s)}2K)}.\end{aligned}$$ In particular, setting $Q_i=\{u_i^{-1},1,u_i\}$ for $i=1,\ldots,\ell$, we have $$\left|H\prod\{P_1,\ldots,P_k,Q_1,\ldots,Q_\ell\}\right|\ge\frac{|AH|}{\exp(e^{O(s^2)}\log^{O(s)}2K)},$$ with the product again taken in the same order.

Now $\prod\{P_1,\ldots,P_k,Q_1,\ldots,Q_\ell\}$ is an ordered progression, say $P_{\text{\textup{ord}}}(x;L)$. The ranks of the progressions $P_i$ coming from \[prop:prod.of.progs.and.small\] are at most $e^{O(s)}\log^{O(1)}2K$, and hence that the rank of $P_{\text{\textup{ord}}}(x;L)$ is at most $ke^{O(s)}\log^{O(1)}2K+\ell$, which is at most $e^{O(s^2)}\log^{O(s)}2K$. Furthermore, the containment implies that $$\begin{aligned}
P_{\text{\textup{ord}}}(x;L)&\subset A^{(k+\ell)e^{O(s)}}\\
   &\subset A^{e^{O(s^2)}\log^{O(s)}2K},\end{aligned}$$ and \[prop:nilprog.equiv\] therefore implies that $$P_{\text{\textup{ord}}}(x;L)\subset P_{\text{\textup{nil}}}(x;L)\subset\overline P(x;L)\subset A^{e^{O(s^3)}\log^{O(s^2)}2K}.$$ This comletes the proof.

\[rem:poly.bound\]The polynomial bound on the product set of $A$ required to contain $H$ in \[thm:new.gen\] comes from our applications of Propositions \[prop:lower.step.in.quotient\] and \[prop:grp.in.normal\]. These propositions are themselves both applications of the same result, namely [@nilp.frei Proposition 7.2], and so the polynomial bound in \[thm:new.gen\] can be traced to this result. It appears that a new idea would be required to improve this result in such a way as to remove the polynomial bound from \[thm:new.gen\].

Covering arguments {#sec:covering}
==================

In this section we use covering arguments to prove \[cor:ruzsa,cor:chang.ag\]. \[cor:ruzsa\] follows from \[thm:new.gen\] and a straightforward application of Ruzsa’s covering lemma, as follows.

We may assume that $A$ generates $G$. Let $H$ and $P=P_{\text{\textup{ord}}}(x;L)$ be as given by \[t