Как это доказать?
Сначала нужно чётко сформулировать то, что мы пытаемся доказать. Например, так: подпространство является инвариантным тогда и только тогда, когда в нём можно выбрать базис, составленный из собственных векторов.
В одну сторону (справа налево) утверждение очевидно. В обратную -- довольно нетривиально, и способ доказательства зависит от построения курса.
Доказать "с нуля" (т.е. не используя вообще никаких теорем) можно, например, так. Пусть

-- собственный базис оператора

и

-- базис в инвариантном подпространстве. Пусть

-- матрица разложения второго "подбазиса" по первому, т.е.

. Приведём эту матрицу (используя при необходимости перестановку её столбцов, т.е. перенумерацию

) к матрице

, в левой части которой стоит единичная матрица, в правой же -- как получится. Строки новой матрицы задают также некий базис в подпространстве:

. Так вот, если чуток подумать, то становится ясно: каждый из векторов

не вывалится из подпространства только тогда, когда сам

-- некоторый собственный вектор.
И это независимо от того, есть ли кратные собственные числа или нет. Как простота собственных чисел может хоть сколько-то упростить хоть какое-то доказательство -- не знаю.