Да, кстати, раз уж начал об индексах, разница в их типах ещё обозначает разницу в преобразовании соответствующих координат, если начать индексы понимать конкретно и как это появилось исторически, а не абстрактно, как в принципе у меня там. Именно из-за разницы в преобразовании возникли слова
ковариантный и
контравариантный.
Все преобразования индексная запись тоже позволяет вывести механически: пусть векторы старого базиса зовутся

, векторы нового

(хитрая нумерация, но дальше будет понятно, зачем), и получаются они как

, где

— матрица перехода, строки её нумеруются индексами

, а столбцы индексами

, и раз тут у нас конкретные индексы, надо не забыть про соглашение о суммировании (здесь вставить неявную сумму по разным значениям

).
Возьмём теперь произвольный вектор

, для его координат имеем определение

. Подставим одно в другое:

, из чего

, или

. В принципе мы могли бы просто угадать предпоследнее равенство, условившись сворачивать вместе только индексы одинаковой штрихованности.
Аналогично можно получить для ковекторных координат

(я пишу сворачиваемые индексы рядом только для сохранения мнемоники с умножениями матриц, столбцов и строк — вообще можно переставлять множители в такой записи как угодно в пределах произведения, как будто это обычные числа). Теперь можно заметить, что выражение для координат

похоже на выражение для базисных векторов — там по крайней мере используется та же

, чтобы получить штрихованное из нештрихованного, а вот для координат вектора используется

. Потому нижние индексы назвали ковариантными — они преобразуются «согласно», а верхние контравариантными — они «в обратном направлении» (если брать ту же

, мы будем получать из штрихованных нештрихованные).
Это конечно есть в учебниках, но в учебниках нечасто есть мнемоническое обозначение для элементов матрицы

. Можно также заметить, что если преобразовать штрихованный индекс в координатах самой

на нештрихованный:

, мы по определению

увидим, что это (единичная) матрица единичного оператора

. Это не просто так: матрица перехода и есть матрица единичного оператора, записанная в двух базисах сразу: первый индекс в одном, второй в другом. Так в принципе можно записывать какой угодно тензор, но пользы ни для теории, ни для практики в этом нет; однако хотя бы обзор с этого угла позволяет наконец понять (тем, кто был неспокоен), кто же такая эта матрица поворота и «чья» она.