The strategy is to verify the two partition conditions: (1) every element lies in some coset, and (2) two cosets that share an element must be identical. The key technique in (2) is the double-inclusion argument $aH \subseteq cH \subseteq aH$.
**Step 1: Every element lies in a coset.**
For any $g \in G$, we have $g = ge \in gH$ (since $e \in H$). So $g$ lies in the coset $gH$.
**Step 2: Overlapping cosets are equal.**
[claim:Coset Equality From Shared Element]
If $c \in aH \cap bH$, then $aH = bH$.
[/claim]
[proof]
Since $c \in aH$, there exists $k \in H$ with $c = ak$. For any $h \in H$:
\begin{align*}
ch = akh \in aH,
\end{align*}
since $kh \in H$ by closure. Therefore $cH \subseteq aH$. Conversely, $a = ck^{-1}$ (since $k^{-1} \in H$), so for any $h \in H$:
\begin{align*}
ah = ck^{-1}h \in cH.
\end{align*}
Therefore $aH \subseteq cH$. Combining gives $aH = cH$. By the identical argument with $b$ in place of $a$, $bH = cH$. Hence $aH = cH = bH$.
[/proof]
**Step 3: Conclusion.**
By Step 1, $\{gH : g \in G\}$ covers $G$. By Step 2, any two cosets are either disjoint or identical. Therefore the distinct left cosets of $H$ in $G$ form a partition of $G$.