Пусть

Квадратные матрицы - это линейные функции из векторного пространства в него самого. А произведение матриц даёт композицию функций.
Рассмотрим базис этого пространства. Функция

переводит его в линейно-независимую систему векторов, потому что если какой-то вектор будет переведён

в линейно-зависимый от других, то это и дальше сохранится (по линейности), и

тоже переведёт его в линейно-зависимый от других. Размерность целевого пространства функции

та же, что и у исходного, так что функция

переводит базис тоже в базис (
вот в этом месте используется конечномерность пространства). Скажем, базис

в базис

Поскольку

- тождественная функция, то функция

переводит

обратно в

с сохранением порядка векторов. Отсюда,

действует тождественно на

(переводит каждый его вектор сам в себя). Поскольку все векторы выразимы через базис, то из линейности

следует, что она тождественно действует и на все векторы, то есть
