physicist here.
When looking at the irreducible representations of $so(3)$, i.e. the set of all real valued anti-symmetric matrices, one can parametrize those irreps with an index $j$ which can be have values like $j = 0, 1/2, 1, 3/2, ...$. Let $D_j$ denote the representation of $so(3)$ with index j.
If one has two Hilbert spaces $H_1, H_2$ which both carry a representation $D_{j_1}, D_{j_2}$, the tensorspace of $H_1$ and $H_2$ carries a representation $D_{j_1} \otimes D_{j_2}$.
In my script for quantum mechanics it says that this tensor representation can be decomposed into a direct sum of irreducible representations in the following way:
$D_{j_1 + j_2} \oplus D_{j_1 + j_2 -1} \oplus ... \oplus D_{|j_1 - j_2|}$
One can easily check that if a representation $D_j$ has dimension $2j+1$ then the dimension of the direct sum is the same as the dimension of the tensorrepresentation, which is basically the whole proof given in the script.
For my good conscience I'd like to know a little bit more about this:
1.) What theorem tells me that the tensor representation can be decomposed into a direct sum of irreps?
2.) Which theorem tells me that the addends of the direct sum are the already found irreducible representations? Why can't it be a completely different function?
3.) Why does the sum go from $j_1 + j_2$ to $|j_1 - j_2|$? Intuitively this makes sense if one looks at the 3 component of the angular momentum operator since this can be $j_1, j_2$ maximally, but I don't understand the mathematical argumentation behind it.
I hope my questions are clear and that someone can point me in the right direction.
Cheers!