Углубленно изучая линейную алгебру, любой студент-математик, а иногда физик или инженер, натыкается на такое понятие как двойственное пространство. И в рамках изучения свойств данного объекта возникает следующее утверждение

Утверждение 1. Конечномерное векторное пространство V канонически изоморфно второму двойственному пространству V^{\ast\ast}:

ev:V \rightarrow V^{\ast\ast}, \ v \mapsto ev_v

где ev_v(f) = f(v)для любого f \in V^{\ast}.

После формулировки утверждения авторы книги/преподаватели на лекции спешат пояснить, что "канонически" = "без выбора базиса", оставляя читателя/слушателя в легком недоумении - почему мы вообще различаем изоморфизм с выбором базиса и без выбора базиса?


На Хабре уже есть одна неплохая статья про естественные преобразования Категории типов. Часть 3. Естественные преобразования, однако не раскрывает некоторые аспекты, которую я хотел бы обсудить (да и страдает от отсутствия примеров за рамками программирования). В этой статье планируется сначала рассказать про двойственное векторное пространство, после чего уже перейти к азам теории категорий и самим естественным преобразованиям. Более предметное обсуждение вопроса, поставленного в начале статьи, будет в следующей части. Стоит предупредить, что статья будет изобиловать этой самой теорией категорий.

Пререквизиты: Векторное пространство, изоморфизм, линейная функция. Ну и не бояться коммутативных диаграмм.

Примечание

Весь материал ниже изложен для векторных пространств над \mathbb{R} , однако легко обобщается на векторные пространства над произвольным полем \mathbb{K}, в частности, евклидовы пространства придется заменить на векторные пространства с симметричной невырожденной билинейной формой.

Глава 0: Двойственные пространства

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

Первое двойственное пространство

Определение 1. Двойственное к векторному пространству Vпространство V^{\ast}есть набор всевозможных линейных функций (линейных функционалов) f: V \to \mathbb{R}, на котором сложение и умножение на скаляр определяются поэлементно, т.е \forall f, g \in V^{\ast}, \alpha \in \mathbb{R}

(f + g)(v) = f(v) + g(v), \ \ \ (\alpha f)(v) = \alpha \cdot f(v)

Для каждого базиса \mathbf{e} = (e_1, e_2, \ldots, e_n) в Vможно построить двойственный базис \mathbf{e}^{\ast} = (e_1^{\ast}, e_2^{\ast}, \ldots, e_n^{\ast})в V^{\ast}, где e^{\ast}_i (x_1 e_1 + x_2 e_2 + \ldots + x_n e_n) := x_i, т.е. e_i^{\ast}(e_j) = 0 при i \neq j и e_i^{\ast}(e_i) = 1. Тогда координаты произвольного линейного функционала f \in V^{\ast}определяются значениями на базисных векторах

f(v) = f(\sum_{i=1}^n x_i e_i) = \sum_{i=1}^n x_i f(e_i) = \sum_{i=1}^n e^{\ast}_i(v)f(e_i) = (\sum_{i=1}^n e^{\ast}_if(e_i))(v)

Т.е. f = e_1^{\ast} f(e_1) + \ldots + e_n^{\ast} f(e_n), откуда координаты f в базисе \mathbf{e}^{\ast} определяются набором (f(e_1), \ldots, f(e_n)). Тогда получаем равенство\dim V^{\ast} = \dim V = n, из которого следует следующее утверждение

Утверждение 2. Конечномерное векторное пространство V изоморфно двойственному пространству V^{\ast}.

Доказательство

Зафиксируем базис\mathbf{e} в V и двойственный к нему \mathbf{e}^{\ast} в V^{\ast}, тогда изоморфизм можно построить, сопоставляя e_i с e_i^{\ast}.

Стоит заметить, что при построение изоморфизма мы выбирали базис в V, что наводит на мысль о том, что V и V^{\ast} не изоморфны канонически, если только не существует какого-то способа построить такой изоморфизм без выбора базиса.

Но самым важным аспектом двойственного пространства является его следующее свойство

Утверждение 3. Для любого линейного отображения \phi: V \to W существует двойственное ему линейное отображение \phi^{\ast}: W^{\ast} \to V^{\ast}, \ f \mapsto f \circ \phi, которое каждому линейному функционалу f: W \to \mathbb{R} сопоставляет линейный функционал \phi^{\ast} f: V \to \mathbb{R} такой, что его значение на векторе v \in V равно (\phi^{\ast} f)(v) := f(\phi (v)).

Доказательство

Необходимо убедиться, что f(\phi (v))- линейный функционал, что немедленно следует из линейности \phi и f

f(\phi (v_1 + v_2)) = f( \phi (v_1) + \phi (v_2)) = f(\phi(v_1)) + f(\phi(v_2))f(\phi (\alpha v)) = f(\alpha \cdot \phi (v)) = \alpha\cdot  f(\phi(v))

Линейность самого \phi^{\ast}при этом проверяется совершенно аналогично

\phi^{\ast} (\alpha f + \beta g) = (\alpha f + \beta g) \circ \phi = (\alpha f) \circ \phi + (\beta g) \circ \phi = \alpha \cdot (f \circ \phi) + \beta \cdot (g \circ \phi )

Таким образом, \phi^{\ast}- линейное отображение.

Второе двойственное пространство

Теперь второе двойственное пространство V^{\ast\ast}можно определить как двойственное пространство к V^{\ast}, т.е. набор линейных функционалов \phi: V^{\ast} \to \mathbb{R}. С первого взгляда абсолютно не понятно, что за функционалы могут лежать в таком пространстве. Однако некоторые функционалы из этого пространства можно довольно легко определить - это функционалы вычисления ev_v, которые берут произвольный линейный функционал из V^{\ast} и считают его значение на заданном векторе v \in V; остается только убедиться в их линейности

ev_v(f + g) = (f + g)(v) = f(v) + g(v) = ev_v(f) + ev_v(g)ev_v(\alpha f) = (\alpha f)(v) = \alpha \cdot f(v) = \alpha \cdot ev_v(f)

Тогда Утверждение 1 говорит нам следующее - если V конечномерно, то в V^{\ast\ast} нет никаких других функционалов, кроме ev_v.

Предпосылкой этого утверждение является двойственность V^{\ast\ast}по отношению к V^{\ast}. Зафиксируем базис \mathbf{e} в V, к нему имеется двойственный \mathbf{e}^{\ast} в V^{\ast}, а к нему имеется двойственный \mathbf{e}^{\ast\ast} в V^{\ast\ast}. Для произвольного f \in V^{\ast}имеем f = e_1^{\ast} f(e_1) + \ldots + e_n^{\ast} f(e_n), откуда e^{\ast\ast}_i(f) = f(e_i), т.к. e_i^{\ast\ast}(e^{\ast}_j) = 0при i \neq j и e_i^{\ast\ast}(e^{\ast}_j) = 1 при i = j. Это наблюдение позволяет заключить, что e^{\ast\ast}_i = ev_{e_i} и второй двойственный базис целиком состоит из функционалов вычисления \mathbf{e}^{\ast\ast} = (ev_{e_1}, \ldots, ev_{e_n}).

Очевидно, что \dim V^{\ast\ast} = \dim V^{\ast} = \dim V = n, откуда V^{\ast\ast} изоморфно V. При этом изоморфизм, определенный в Утверждение 1 сопоставляет базис \mathbf{e} базису \mathbf{e}^{\ast\ast}, однако это лишь половина утверждения. Вторая половина говорит нам об естественности этого изоморфизма.

Глава 1. Немного о категориях

Довольно долго мы сторонились слона в комнате - теории категорий. Теперь придется к ней обратиться. И нет, это не от того, что автор хочет выпендриться или он в этой вашей математике так погряз, что уже без теории категорий не может. Проблема в том, что "естественное преобразование" - понятие, которое напрямую зависит от выбранной категории. Например, построенный нами выше изоморфизм V и V^{\ast} не является естественным в случае конечномерных векторных пространств, однако если задать на Vструктуру евклидового пространства и выбрать в качестве отображений ортогональные преобразования, то изоморфизм станет естественным.

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

  1. Если в категории \mathbf{C}есть объект A, то в\mathbf{C}существует тождественная стрелка \text{id}_A: A \to A.

  2. Если в категории \mathbf{C}есть две стрелки f: A \to B и g: B \to C, то в\mathbf{C}существует стрелка, являющаяся их композицией, т.е. g \circ f: A \to C.

Определим интересные нам категории

Для примеров я буду иногда использовать категорию \mathbf{Set}всех множеств и отображений между ними.

Среди разнообразных категорий векторных пространств нас интересует категория \mathbf{Vect_{f, i}} конечномерных векторных пространств, стрелками которой являются изоморфизмы векторных пространств и категория \mathbf{Vect_f}конечномерных векторных пространств и всевозможных линейных отображений между ними. А также нас интересует категория \mathbf{Eucl_f}конечномерных евклидовых пространств и ортогональных преобразований между ними.

И еще несколько нужных понятий

Определим понятие (ковариантного) функтора.

Определение 2. Функтором F: \mathbf{C} \to \mathbf{B} из категории \mathbf{C} в категорию \mathbf{B}называется отображение, которое каждому объекту A \in \mathbf{C}сопоставляет объект F(A) \in \mathbf{B}, а каждой стрелке f: A \to B сопоставляет стрелку F(f): F(A) \to F(B), причем F(g \circ f) = F(g) \circ F(f)и F(\text{id}_A) = \text{id}_{F(A)}. Тогда эндофунктор это функтор  F: \mathbf{C} \to \mathbf{C}из категории \mathbf{C} в саму себя.

Пример. Самым простым эндофунктором, определенным для любой категории, является тожде��твенный (или тривиальный) эндофунктор I_\mathbf{C}, который каждому объекту A \in \mathbf{C} сопоставляет тот же самый объект, а стрелкеf: A \to B сопоставляет ее саму.

Пример. Классический пример нетривиального эндофунктора находится в категории \mathbf{Set}. Там имеется эндофунктор \mathcal{P}: \mathbf{Set} \to \mathbf{Set}, который множеству X сопоставляет его множество всех подмножеств \mathcal{P}(X). Отображению f: X \to Yон сопоставляет отображение \mathcal{P}(f): \mathcal{P}(X) \to \mathcal{P}(Y), \ S \mapsto f(S), которое подмножеству S \in \mathcal{P}(X)сопоставляет образ f(S) \in \mathcal{P}(Y). Очевидно, что \mathcal{P}(\text{id}_X) = \text{id}_{\mathcal{P}(X)}. Проверим сохранение композиции; пусть имеются два отображения f: A \to B и g: B \to C, тогда для всякого подмножества S \in \mathcal{P}(A)справедливо

\mathcal{P}(g \circ f)(S) = (g \circ f)(S) = g(f(S)) = g(\mathcal{P}(f)(S)) = (\mathcal{P}(g)\circ\mathcal{P}(f))(S)

Пример. Еще примером нам послужит двойственное пространство и категория \mathbf{Vect_{f,i}}. Эндофунктор D': \mathbf{Vect_{f,i}} \to \mathbf{Vect_{f,i}}сопоставляет конечномерному пространству Vего двойственное пространство V^{\ast}, а всякой стрелке \phi: V \to Wстрелку D'(\phi): V^{\ast} \to W^{\ast}, \ f \mapsto f \circ \phi^{-1}, определенную как D'(\phi) = (\phi^{\ast})^{-1} , т.е. обратную стрелку к стрелке \phi^{\ast}: W^{\ast} \to V^{\ast} , определенной в Утверждении 3. На первый взгляд такое сопоставление очень неестественно - в предыдущем примере нам не требовалось существование обратной стрелки и само сопоставление выглядело куда более интуитивным. Связано это с тем, что "естественная" для этого эндофунктора стрелка \phi^{\ast}: W^{\ast} \to V^{\ast}действует в другую сторону, поэтому нам пришлось рассматривать не категорию \mathbf{Vect_f}, а категорию \mathbf{Vect_{f, i}}, чтобы гарантировать, что стрелку \phi^{\ast}удастся обратить. (стоит заметить, что само сопоставление векторных пространств не сопровождается выбором базиса или построением изоморфизма между ними). Композиция и сохранение тождественной стрелки проверяются непосредственно.

Примечание

Вообще эндофунктор D: \mathbf{Vect_f} \to \mathbf{Vect_f}, \ \ \ D(V) = V^{\ast}, \ \ \ D(\phi) = \phi^{\ast}является контравариантным, т.е. на объектах он ведет себя так же, как и обычный (ковариантный) эндофунктор, однако он оборачивает стрелки и композицию, т.е. стрелка f: A \to B переходит в D(f): D(B) \to D(A)и композиция оборачивается D(g \circ f) = D(f) \circ D(g). Это позволяет говорить об ковариантном функторе в двойственную категорию D^{op}: \mathbf{Vect_f} \to \mathbf{Vect_f^{op}}, \ \ \ D^{op}(V) = V^{\ast}, \ \ \ D^{op}(\phi) = \phi^{\ast}(не стоит цепляться здесь за слово "двойственная", это универсальное свойство любого контравариантного функтора). Именно поэтому мы спускаемся в подкатегорию \mathbf{Vect_{f, i}}, т.к. она изоморфна своей двойственной категории \mathbf{Vect_{f, i}^{op}}, что в свою очередь позволяет превратить функтор D^{op}: \mathbf{Vect_{f,i}} \to \mathbf{Vect_{f,i}^{op}}в эндофункторD': \mathbf{Vect_{f,i}} \to \mathbf{Vect_{f,i}}. Делается это при помощи композиции функтора обращения стрелок R: \mathbf{Vect_{f,i}^{op}} \to \mathbf{Vect_{f,i}}, \ \ \ R(V) = V, \ \ \ R(\phi) = \phi^{-1}и функтора D^{op}, т.е. D' = R  \circ D^{op}.

Ну и настало время последнего понятия из теории категорий - естественное преобразование или стрелка между функторами

Определение 3. Естественным преобразованием функторов F, G: \mathbf{C} \to \mathbf{B} называется функция \eta: F \to G, которая всякому объекту X \in \mathbf{C}сопоставляет стрелку \eta_X: F(X) \to G(X)таким образом, что для всякой стрелки f: X \to Y следующая диаграмма коммутирует

\eta_Y \circ F(f) = G(f) \circ \eta_X

Тогда естественный изоморфизм между функторами F, G: \mathbf{C} \to \mathbf{B} есть естественное преобразование \eta: F \to G, для которого существует обратное естественное преобразование \eta^{-1}: G \to F, т.е. такое естественное преобразование, что \eta \circ \eta^{-1} = \text{id}_G и \eta^{-1} \circ \eta = \text{id}_F (про \text{id}_F написано чуть ниже).

Пример. Очевидно, что для всякого эндофунктора F существует тождественное преобразование \text{id}_F: F \to F, которая всякому объекту X \in \mathbf{C}сопоставляет тождественную стрелку\text{id}_{F(X)}: F(X) \to F(X), что автоматически приводит к равенству \text{id}_{F(Y)} \circ F(f) = F(f) \circ \text{id}_{F(X)} для любой стрелки f: X \to Y.

Пример. В нашей категории для примеров \mathbf{Set}существует известное естественное прео��разование \eta: I_{\mathbf{Set}} \to \mathcal{P}. Каждому множеству X \in \mathbf{Set}оно сопоставляет стрелку \eta_X: X \to \mathcal{P}(X), \ x \mapsto \{x\}. Тогда необходимо проверить коммутативность следующей диаграммы для каждой стрелки f: X \to Y

\eta_Y \circ f = \mathcal{P}(f) \circ \eta_X

Для любой точки x \in X с одной стороны

(\eta_Y \circ f )(x) = \eta_Y(f(x)) = \{f(x)\}

А с другой стороны

(\mathcal{P}(f) \circ \eta_X) (x) = \mathcal{P}(f)(\{x\}) = f(\{x\}) = \{f(x)\}

Таким образом, диаграмма выше коммутирует, а это значит, что \eta: I_{\mathbf{Set}} \to \mathcal{P} действительно естественное преобразование. За этими всеми строгими проверками скрывается довольно простая интуиция - эндофунктор \mathcal{P} в некотором смысле описывает поведение эндофунктора I_{\mathbf{Set}}.

Пример/Утверждение 1. Настало время завершить доказательство Утверждения 1, т.е. частично ответить на поставленный в начале статьи вопрос. Для начала придется определить эндофунктор второго сопряженного пространства D^2: \mathbf{Vect_f} \to \mathbf{Vect_f}. Очевидно, что каждому V \in \mathbf{Vect_f}он сопоставляет V^{\ast\ast} \in \mathbf{Vect_f}, а вот преобразование стрелок определить чуть сложнее. Для этого каждой стрелке \phi: V \to Wмы сопоставим двойственную стрелку \phi^{\ast}: W^{\ast} \to V^{\ast}, \ f \mapsto f \circ \phiиз Утверждения 3, а ей в свою очередь сопоставим такую же двойственную стрелку \phi^{\ast\ast}: V^{\ast\ast} \to W^{\ast\ast}, \ ev_{v} \mapsto ev_{v} \circ \phi^{\ast}. Пока не очень ясно, что вообще такое ev_{v} \circ \phi^{\ast}. Однако мы знаем, что \phi^{\ast}принимает на вход линейные функционалы g \in W^{\ast}. Тогда справедлива следующая цепочка

(ev_v \circ \phi^{\ast})(g) = ev_v (\phi^{\ast}(g)) = ev_v(g \circ \phi) = (g \circ \phi)(v) = g(\phi(v)) = ev_{\phi(v)}(g)

Таким образом ev_v \circ \phi^{\ast} = ev_{\phi(v)} \in W^{\ast\ast}- функционал вычисления, который функционалу g \in W^{\ast} сопоставляет значение в точке \phi(v) \in W. Остается только проверить композицию и действие на тождественной стрелке. Пусть \psi: V \to U и \phi: U \to W, тогда \psi^{\ast\ast}: V^{\ast\ast} \to U^{\ast\ast}, \ ev_v \mapsto ev_{\psi(v)} и \phi^{\ast\ast}: U^{\ast\ast} \to W^{\ast\ast}, \ ev_u \mapsto ev_{\phi(u)}, что позволяет сказать

(\phi \circ \psi)^{\ast\ast}(ev_v) = ev_{(\phi \circ \psi)(v)} = ev_{\phi(\psi(v))}= \phi^{\ast\ast} (ev_{\psi(v)}) = \phi^{\ast\ast} (\psi^{\ast\ast}(ev_v)) = (\phi^{\ast\ast} \circ \psi^{\ast\ast})(ev_v)

Для тождественной стрелки все проще

(\text{id}_V)^{\ast\ast}(ev_v) = ev_v = \text{id}_{V^{\ast\ast}}(ev_v)
Примечание

Эндофунктор D^2: \mathbf{Vect_f} \to \mathbf{Vect_f}обычно определяется как композиция контравариантного функтора D: \mathbf{Vect_f} \to \mathbf{Vect_f}с самим собой.

Построив функтор второго двойственного пространства, мы теперь можем определить тождественное преобразование ev: I_{\mathbf{Vect}_f} \to D^2 аналогичным Утверждению 1 образом, т.е. ev_V: V \rightarrow V^{\ast\ast}, \ v \mapsto ev_v. Тогда для любой стрелки f: V \to W необходимо проверить на коммутативность следующую диаграмму

ev_W \circ f = f^{\ast\ast} \circ ev_V

Для произвольной точки v \in Vс одной стороны имеем

(ev_W \circ f)(v) = ev_W (f(v)) = ev_{f(v)}

А с другой стороны

(f^{\ast\ast} \circ ev_V)(v) = f^{\ast\ast}(ev_v) = ev_{f(v)}

Действительно, ev является естественным преобразованием, обратное к нему преобразование ev^{-1}: D^2 \to I_{\mathbf{Vect}_f}определяется достаточно прямолинейным образом ev^{-1}_V: V^{\ast\ast} \rightarrow V, \ ev_v \mapsto v.

Примечание

Здесь, кстати, существенно, что V изоморфно V^{\ast\ast}как вект��рное пространство, это позволяет нам гарантировать, что все функционалы в V^{\ast\ast} есть функционалы вычисления ev_v, а это уже позволяет сказать, что для всякого функционала ev_vточно найдется вектор v, который можно однозначно сопоставить ev_v. В общем случае для произвольных векторных пространств это не так (в частности, это всегда не так для бесконечномерных пространств).

Проверка происходит совершенно аналогично проверке выше, поэтому я ее пропущу. Таким образом, изоморфизмы ev_V: V \rightarrow V^{\ast\ast}, \ v \mapsto ev_v на самом деле представляют собой естественный изоморфизм эндофункторов I_{\mathbf{Vect}_f}и D^2. В рамках линейной алгебры этот факт можно трактовать так - если V конечномерно, то V^{\ast} есть двойственное пространство к V, а V есть двойственное пространство к V^{\ast}.

Примечание

У этого факта в рамках линейной алгебры есть довольно хорошее применение - на всяком конечномерном вектором пространстве можно ввести билинейное отображение V \times V^{\ast} \to \mathbb{R}, \ (v, f) \mapsto f(v). Если при этом зафиксировать базис \mathbf{e} = (e_1, e_2, \ldots, e_n) в V, а в V^{\ast} взять двойственный \mathbf{e}^{\ast}, то записав v = (v_1, v_2, \ldots, v_n) и f = (f_1, f_2, \ldots, f_n)в координатах наших базисов, мы получим

f(v) = f(\sum_{i=1}^n v_i e_i) = \sum_{i=1}^n v_i f(e_i) = \sum_{i=1}^n v_i f_i

Т.е. получим в точности скалярное произведение. Стоит заметить, что это неканоническая конструкция, т.к. взяв в V^{\ast} другой базис, мы получим другое скалярное произведение. В бесконечномерном случае все сложнее - схожая конструкция существует, однако ее не получиться построить через V \times V^{\ast} \to \mathbb{R}, \ (v, f) \mapsto f(v).


Пока на этом все; в этой части я изложил весь теормин, чтобы в следующей части говорить более предметно. Во второй части планируется поговорить про неестественность изоморфизма V и V^{\ast} , как говорить о базисе, как о стрелке, да и в общем некоторые необходимые условия для того, чтобы называть какой-то изоморфизм каноническим или неканоническим.