There is something that I am missing in the proof of the Proposition:
Let $A$ and $B$ be finite subgroups of a group $G$. Then $$ |AB| = \frac{|A||B|}{|A\cap B|}. $$
I will not reproduce the proof here, I just want to justify informally why this is true and then pose my question.
Clearly, $aB$ is a coset of $B$ and $|aB|=|B|$. Then if we calculate $AB$, we are calculating all the cosets of $B$ that can be generated via $A$ (possibly we are overcounting). So $|AB|=n|B|$, were $n$ has to be the total number of left cosets in $B$. Then $n$ is proportional to $|A|$ taking away the overcounting. It happens that the overcounting are all those elements $a\in A$ such that $a\in A\cap B$.
Why $n=|A|/|A\cap B|$ and not $n=|A|-|A\cap B|$?
You are not being sufficiently precise when you say "the overcounting are all those elements $a\in A$ such that $a\in A\cap B$".
The elements you are counting (and therefore overcounting) are not the elements $a$ but the products $c=ab$. If $A\cap B$ has $n$ elements $a_1,a_2,\ldots,a_n$ with $a_1=e$, then any such product can be written in $n$ ways $$c=(aa_1)(a_1^{-1}b)=(aa_2)(a_2^{-1}b)=\cdots=(aa_n)(a_n^{-1}b)\ .$$ I leave it as an exercise for you to see why $c$ can be written in only these $n$ ways. So counting in this way gives every product $n$ times, and you have to divide by $n$ to get the correct count.
To understand the last step remember the old joke. How do you count the sheep in a paddock? - Answer: count all their legs then divide by $4$. OK, as a joke it's not very funny. But it is something which will teach you some maths!!