Simultaneous triangulation of operators $T,S$ 
Let $\mbox{dim}(V)<\infty$. If $T,S\in \mbox{End}(V)$ satisfy: $T\circ S = S\circ T$, $T$ is diagonizable and all the primes that divides $m_S$ has degree one, show that there exists a base $\alpha$ of $V$ such that $[T]^{\alpha}_\alpha$ and $[S]^{\alpha}_\alpha$ are inferior triangular.

Notation:
$\mbox{End}(V) = $ set of all linear functions from $V\rightarrow V.$ 
$m_S$ = minimal polynomial of the operator $S\in \mbox{End}(V) $.
I am able to prove that if the minimal polynomial of an operator $R$, $m_R$, is the product of linear factors, then one can find a basis of $V$ such that $[R]^{\alpha}_\alpha$ is inferior triangular. Since $T$ is diagonalizable, it is true that $m_T$ is the product of linear factors. Also $m_S$ is the product of linear factors by hypothesis. Therefore, it is true that both of them are triangulable.
But the question is: How to prove that they are simultaneously triangulable?

Since $T$ is diagonalizable, we can write $V = \bigoplus V_{\lambda_i}$ where $\lambda_1,\dots,\lambda_k$ are the distinct eigenvalues of $T$ and $V_{\lambda_i} = \ker(T - \lambda_i I)$ are the associated eigenspaces. If $Tv = \lambda v$ then $T(Sv) = S(Tv) = S(\lambda v) = \lambda Sv$ which shows that each eigenspace of $T$ is $S$-invariant. The minimal polynomial of $S$ is the lcm of the minimal polynomials of the operators $S_i := S|_{V_{\lambda_i}}$ and in particular the minimal polynomial of each $S_i$ must split into linear factors so for each $S_i$ you can find a basis $\alpha_i$ of $V_{\lambda_i}$ such that $[S]_{\alpha_i}^{\alpha_i}$ is upper triangular. Then with respect to $\alpha = (\alpha_1,\dots,\alpha_k)$ the matrix $T$ will be diagonal while the matrix of $S$ will be upper triangular.
