Let $T$ an operator over a $\mathbb{F}$ vector space $\mathbb{V}$, with $\dim(\mathbb{V})<\infty$. Let $p=p_{1}^{r_{1}}\cdots p_{k}^{r_{k}}$ the minimal polynomial of $T$, and $\mathbb{V}=W_{1}\oplus\cdots\oplus W_{k}$ the primary decomposition of $\mathbb{V}$ for $T$.
Let $\mathbb{W}$ a subspace T-invariant of $\mathbb{V}$. I need to show that
$$\mathbb{W}=(\mathbb{W}\cap W_{1})\oplus\cdots\oplus (\mathbb{W}\cap W_{k}) $$
I really don't know what to do. I will appreciate any tip.
Let $ q $ be the minimal polynomial of $ T | _W $. Then $ q | p $ because $ p(T|_W) = 0 $. Therefore $ q = {p_1}^{s_1} \cdots {p_k}^{s_k} $ with $ 0 \le s_k \le r_k $. Now let $ W = U_1 \oplus \cdots \oplus U_k $ be the primary decomposition of $ W $. Clearly we have $ W = \left( U_1 \cap W \right) \oplus \cdots \oplus \left( U_k \cap W \right) $. Now $ u_i \in U_i \cap W \iff {p_i(T|_W)}^{s_i} u_i = 0$. (This follows directly from the proof of the Primary Decomposition Theorem.) But this implies (by a similar equivalence) that $ u_i \in W_i \cap W $. Hence we have showed that $ W \subset \left( W_1 \cap W \right) \oplus \cdots \oplus \left( W_k \cap W \right) $. The other inclusion is trivial hence we have proofed $ W = \left( W_1 \cap W \right) \oplus \cdots \oplus \left( W_k \cap W \right) $.