# Lí thuyết phạm trù - Hàm tử


<!-- As we saw in example 3 in [that post](https://nzqirc.xyz/posts/math/category-theory/02), a functor can be viewed as an arrow/morphism between two categories. -->

Như chúng ta đã thấy trong Ví dụ 3 trong [bài blog trước](https://nzqirc.xyz/posts/math/category-theory/02), ta có thể xem một **hàm tử** (functor) như một mũi tên/cấu xạ giữa hai **phạm trù** (category).

<!-- > ...every sufficiently good analogy is yearning to become a functor.
>
> John Baez -->

> ...mọi phép ẩn dụ (analogy) đủ tốt đều "khao khát" trở thành một hàm tử.
>
> John Baez

<!-- ## What is a functor? -->
## Hàm tử là gì?

<!-- More precisely, a functor $F: C \to D$ from a category $\mathsf{C}$ to a category $\mathsf{D}$ consists of some data that satisfies certain properties. -->

Nói đúng hơn, một hàm tử

$$F: \mathsf{C} \to \mathsf{D}$$ 

từ phạm trù $\mathsf{C}$ đến phạm trù $\mathsf{D}$ bao gồm một số dữ kiện (data) thỏa mãn các tính chất nhất định.

<!-- ### The Data -->
### Dữ kiện

<!-- - An object $F(x)$ in $\mathsf{D}$ for every object $x$ in $\mathsf{C}$. -->
<!-- - A morphism $F(f): F(x) \to F(y)$ in $\mathsf{D}$ for every morphism $f: x \to y$ in $\mathsf{C}$. -->

- Tồn tại **vật** (object) $F(x)$ nào đó trong $\mathsf{D}$ ứng với mỗi vật $x$ trong $\mathsf{C}$.
- Tồn tại **cấu xạ** (morphism) $$F(f): F(x) \to F(y)$$ nào đó trong $\mathsf{D}$ ứng với mỗi cấu xạ $$f: x \to y$$ trong $\mathsf{C}$.

<!-- ### The Properties -->
### Các tính chất (properties)

<!-- - $F$ respects composition, i.e. $F(g \circ f) = F(g) \circ F(f)$ in $\mathsf{D}$ whenever $g$ and $f$ are composable morphisms in $\mathsf{C}$. -->
<!-- - $F$ sends identities to identities, i.e. $F(id_x) = id_{F(x)}$ for all objects $x$ in $\mathsf{C}$. -->

- Cấu xạ $F$ bảo toàn (respect) phép hợp thành (composition), nghĩa là $$F(g \circ f) = F(g) \circ F(f)$$ trong $\mathsf{D}$ nếu $g$ và $f$ là các **cấu-xạ hợp-thành-được** (composable morphisms) trong $\mathsf{C}$.
- Với mọi $x$ trong trong $\mathsf{C}$, $F$ ánh xạ các cấu xạ đồng nhất (identity morphisms) $id_x$ trong $\mathsf{C}$ đến các cấu xạ đồng nhất $id_{F(x)}$ trong $\mathsf{D}$, nghĩa là $$F(id_x) = id_{F(x)}.$$

![](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b56804f91372b0eca8337c0_functor.jpg)

<!-- ## Example 1: A functor between groups -->
## Ví dụ 1: Hàm tử giữa các nhóm (groups)

<!-- We noted last week that every group $G$ can be viewed as a one-object category called $\mathsf{B}G$. Suppose then that $\mathsf{B}G$ and $\mathsf{B}H$ are two such categories. What would a functor $F: \mathsf{B}G \to \mathsf{B}H$ look like?   -->

Ta biết rằng mỗi nhóm $G$ có thể được xem như là một **phạm trù một vật** (one-object category) gọi là $\mathsf{B}G$. Giả sử rằng $\mathsf{B}G$ và $\mathsf{B}H$ là hai phạm trù như vậy. Vậy một hàm tử $$F: \mathsf{B}G \to \mathsf{B}H$$ sẽ trông như thế nào?

![](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b56805eb3c133a7b51f0b6a_gpfunctor.jpg)

<!-- To start, it must send the single object $∙$ of $\mathsf{B}G$ to the single object $∙$ of $\mathsf{B}H$. Moreover, any morphism $∙ \xrightarrow{g} ∙$, which, you'll remember, is just a group element $g \in G$, must map to a morphism $∙ \xrightarrow{F(g)} ∙$. That is, $F(g)$ must be an element of $H$. The composition property requires that $F(g \circ g') = F(g) \circ F(g')$ for all group elements $g, g' \in G$. And finally, if $e$ denotes the identity morphism on $∙$ (i.e. the identity element in $G$), then we must have $F(e) = e$ where $e$ is the identity morphism on $∙$ (i.e. the identity element in $H$). -->

Đầu tiên, nó phải ánh xạ vật duy nhất (single object) $\textcolor{#FF1394}{∙}$ của $\mathsf{B}G$ đến vật duy nhất $\textcolor{#01BFFE}{∙}$ của $\mathsf{B}H$. Hơn nữa, bất kì cấu xạ $\textcolor{#FF1394}{∙}\xrightarrow{g}\textcolor{#FF1394}{∙}$ nào, mà bạn sẽ nhớ là chỉ một phần tử nhóm $g \in G$, phải ánh xạ (map) đến một cấu xạ $\textcolor{#01BFFE}{∙}\xrightarrow{F(g)} \textcolor{#01BFFE}{∙}$ nào đó. Tức là, $F(g)$ phải là một phần tử của $H$. Tính hợp thành đòi hỏi $$F(g \circ g') = F(g) \circ F(g')$$ với mọi phần tử nhóm $g, g' \in G$. Và cuối cùng, nếu $e$ là kí hiệu cho cấu xạ đồng nhất trên $\textcolor{#FF1394}{∙}$ (tức là phần tử đơn vị trong $G$), thì chúng ta phải có $F(\textcolor{#FF1394}{e}) = \textcolor{#01BFFE}{e}$, với $\textcolor{#01BFFE}{e}$ là cấu xạ đồng nhất trên $\textcolor{#01BFFE}{∙}$ (tức là phần tử đơn vị trong $H$).

<!-- So what's a functor $F: \mathsf{B}G \to \mathsf{B}H$? It's precisely a group homomorphism from $G$ to $H$! -->

Vậy hàm tử $F: \mathsf{B}G \to \mathsf{B}H$ là gì? Nó chính xác là một đồng cấu nhóm (group homomorphism) từ $G$ đến $H$!

![](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b568075087628518e93dc48_gphom.jpg)

<!-- In this example, a functor is just a function (which happens to be compatible with the group structure). But what if the domain/codomain of a functor has more than one object in it?   -->

Trong ví dụ này, một hàm tử chỉ là một hàm số (và hàm số này tương thích (compatible) với cấu trúc nhóm (group structure)). Nhưng điều gì xảy ra nếu tập nguồn/tập đích của hàm tử có nhiều hơn một vật?

<!-- ## Example 2: The fundamental group -->

## Ví dụ 2: Nhóm cơ bản (fundamental group)

<!-- There is a functor $\pi_1: \mathsf{Top} \to \mathsf{Group}$ that associates to every topological space\* $X$ a group $\pi_1(X)$, called the fundamental group of $X$, and sends every continuous function $f: X \to Y$ to a group homomorphism $\pi_1(f): \pi_1(X) \to \pi_1(Y)$. -->

Có một hàm tử
$$\pi_1: \mathsf{Top} \to \mathsf{Group}$$
gán cho mỗi không gian topo (topological space)\* $X$ một nhóm $\pi_1(X)$, gọi là nhóm cơ bản của $X$, và nó ánh xạ mỗi hàm liên tục (continous function) 
$$f: X \to Y$$
thành một đồng cấu nhóm 
$$\pi_1(f): \pi_1(X) \to \pi_1(Y).$$

<!-- > *Technically, they are pointed topological spaces, i.e. spaces where you declare a certain point, called a basepoint, to be special/distinguished. So really, $\pi_1$ is from $Top^*$ to $Group$, where $Top^*$ denotes the category of pointed spaces with basepoint-preserving maps as morphisms. -->

>*Thực ra, chúng là các **không gian topo có điểm cơ sở** (pointed topological spaces), tức là các không gian kèm theo một điểm được chọn trước đó, gọi là điểm cơ sở, nhằm mục đích phân biệt các không gian đó với nhau. Vì vậy, $\pi_1$ thực sự là từ $\mathsf{Top}^{\star}$ sang $\mathsf{Group}$, trong đó $\mathsf{Top}^{\star}$ biểu thị phạm trù của các không gian có điểm cơ sở với các cấu xạ chính là các **ánh xạ bảo toàn điểm cơ sở** (basepoint-preserving maps).

![](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b5680949375dddd81e9e2bb_fundgroups.jpg)

<!-- The elements of $\pi_1(X)$ are (homotopy classes of) maps of the circle into the space $X$. But don't worry if you're not familiar with the phrase "homotopy classes of." Just know that informally $\pi_1$ is a "hole-detector" — it keeps track of the various loops in $X$. And knowing that $\pi_1$ is functorial allows you to prove cool things like Brouwer's fixed-point theorem. For instance, see the proof of Theorem 1.3.3 here. -->

Các phần tử của $\pi_1(X)$ là (các lớp đồng luân (homotopy classes) của) các ánh xạ từ đường tròn (circle) vào không gian $X$. Nếu bạn không quen với cụm từ "các lớp đồng luân" thì cũng không cần phải quá lo lắng. Bạn chỉ cần biết rằng $\pi_1$ là một "công cụ dò tìm lỗ" (hole detector) — [nó theo dõi (track) các đường cong kín (còn gọi là "vòng" - loop) khác nhau trong $X$](https://www.jeremykun.com/2013/01/12/the-fundamental-group-a-primer/). Việc biết rằng $\pi_1$ là một hàm tử cho phép bạn chứng minh những điều thú vị như [**định lí điểm bất động Brouwer**](https://en.wikipedia.org/wiki/Brouwer_fixed-point_theorem) (Brouwer's fixed-point theorem). Ví dụ, hãy xem [chứng minh của Định lí 1.3.3 tại đây](https://math.jhu.edu/~eriehl/context.pdf).

<!-- Now it turns out that the fundamental group is an invariant of a topological space. In other words, if $X$ and $Y$ are homeomorphic spaces, then their fundamental groups are isomorphic. (Even better, this sentence is still true if we replace "homeomorphic" by "homotopic," which is a slightly weaker notion of "sameness.") This gives us a handy way to distinguish spaces: if $X$ and $Y$ have non-isomorphic fundamental groups, then $X$ and $Y$ are guaranteed to be topologically different. -->

Hóa ra một nhóm cơ bản là một bất biến (invariant) của không gian topo. Nói cách khác, nếu $X$ và $Y$ là các **không gian đồng phôi** (homeomorphic spaces), thì các nhóm cơ bản của chúng là **đồng cấu** (isomorphic). (Thậm chí câu này vẫn đúng nếu chúng ta thay "đồng phôi" bằng "đồng luân", đây là một khái niệm [tương tự như khái niệm "giống nhau" nhưng là một phiên bản "yếu" hơn](https://www.math3ma.com/blog/clever-homotopy-equivalences).) Điều này cho phép ta chúng ta phân biệt các không gian theo cách khá tiện lợi: nếu $X$ và $Y$ có **các nhóm cơ bản không đồng cấu** (non-isomorphic fundamental groups), thì $X$ và $Y$ chắc chắn là khác nhau về mặt topo.

<!-- (Actually, there's nothing special about the number 1 here. For each $n \geq 1$, there is a functor $\pi_n: \mathsf{Top} \to Group$ that sends $X$ to $\pi_n(X)$, which is again, informally, the group whose elements are maps of the $n$-dimensional sphere into $X$. The groups $\pi_n(X)$ for $n > 1$ are called the higher homotopy groups of $X$. And when $X$ is a sphere, cool and spooky things happen.) -->

> (Thực ra, không có gì đặc biệt về số 1 ở đây. Với mỗi $n \geq 1$, có một hàm tử 
> $$\pi_n: \mathsf{Top} \to Group$$
> ánh xạ $X$ đến $\pi_n(X)$, và một cách không chính thức, nhóm này là nhóm có các phần tử là các ánh xạ từ hình cầu $n$-chiều ($n$-dimensional sphere) vào $X$. Các nhóm $\pi_n(X)$ với $n > 1$ được gọi là [các nhóm đồng luân cao hơn](https://en.wikipedia.org/wiki/Homotopy_group) (higher homotopy groups) của $X$. Và khi $X$ là một hình cầu, thì có nhiều điều [kì lạ](https://www.scientificamerican.com/blog/roots-of-unity/higher-homotopy-groups-are-spooky/) và thú vị xảy ra.)

<!-- In practice, it can be helpful to think of a functor $F: C \to D$ as encoding an invariant of some sort. -->

Trong thực tế, cách tư duy rằng một hàm tử
$$F: C \to D$$
cứ như đang mã hóa (encode) **một bất biến của cái gì đó** lại khá hữu ích.

![](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b5680a491372b507f8337c2_invariant.jpg)

<!-- This is because if two objects $x$ and $y$ are "the same" in $\mathsf{C}$, then $F(x)$ and $F(y)$ must be "the same" in $\mathsf{D}$. By "the same," I'm referring to the precise notion of isomorphic: -->

Bởi, nếu hai vật $x$ và $y$ là "giống nhau" trong $\mathsf{C}$, thì $F(x)$ và $F(y)$ cũng phải "giống nhau" trong $\mathsf{D}$. Khi dùng từ "giống nhau" ở đây, tôi thực sự đang nói về khái niệm đẳng cấu:

<!-- In any category, a morphism $f: x \to y$ is said to be an isomorphism if there exists a morphism $g: y \to x$ so that $g \circ f = id_x$ and $f \circ g = id_y$. -->

Trong bất kì phạm trù nào, một cấu xạ
$$f: x \to y$$
được gọi là một đẳng cấu nếu tồn tại một cấu xạ 
$$g: y \to x$$
sao cho $g \circ f = id_x$ và $f \circ g = id_y$.

<!-- Isomorphisms in $Set$ are called bijections, isomorphisms in $Top$ are called homeomorphisms, isomorphisms in $Man$ (the category of smooth manifolds and smooth maps) are called diffeomorphisms, isomorphisms in $Vect_k$ (the category of $\mathbb{k}$-vector spaces with linear transformations) are called, well, isomorphisms, and so on.** -->

Các đẳng cấu trong $\mathsf{Set}$ được gọi là song ánh (bijections), các đẳng cấu trong $\mathsf{Top}$ được gọi là đồng phôi (homeomorphisms), các đẳng cấu trong $\mathsf{Man}$ (phạm trù của các đa tạp trơn (smooth manifolds) và các ánh xạ trơn (smooth maps)) được gọi là vi phôi (diffeomorphisms), các đẳng cấu trong $\mathsf{Vect}_\mathbb{k}$ (phạm trù của các không gian vector-$\mathbb{k}$ với các biến đổi tuyến tính (linear transformation)) được gọi bằng chính cái tên đẳng cấu, và còn nhiều ví dụ nữa.\*\*

<!-- **Fun fact: Categories in which every morphism is an isomorphism are given a special name: groupoids. (Can you guess why?) Every group, then, is precisely a one-object groupoid. And yes! The fundamental groupoid of a topological space is a thing! Perhaps we'll chat about it in a future post.... -->

> **Sự thật thú vị: Các phạm trù trong đó mọi cấu xạ đều là đẳng cấu có tên gọi đặc biệt: Phỏng nhóm (groupoid - tên gọi này có nghĩa là "thứ gì đó na ná như một nhóm"). Mọi nhóm đều chính xác là một phỏng nhóm một vật (one-object groupoid). Và đúng vậy! Thực sự có tồn tại [phỏng nhóm cơ bản](https://ncatlab.org/nlab/show/fundamental+groupoid) của một không gian topo! Có thể chúng ta sẽ trò chuyện về nó trong một bài viết tương lai....

<!-- So we can rephrase the above more formally: "If $f$ is an isomorphism between $x$ and $y$, then $F(f)$ is an isomorphism between $F(x)$ and $F(y)$." (The proof isn't tricky—it follows directly from the definitions!) Or, to put it simply, functors preserve isomorphisms. -->

Vì vậy, chúng ta có thể diễn đạt lại câu trên một cách chính thức hơn: "Nếu $f$ là một đẳng cấu giữa $x$ và $y$, thì $F(f)$ là một đẳng cấu giữa $F(x)$ và $F(y)$." (Chứng minh không khó - nó có thể được suy ra trực tiếp từ các định nghĩa!) Hoặc, đơn giản hơn, các hàm tử bảo toàn (preserve) các đẳng cấu.

<!-- Well, I have a couple more examples of functors that I'm excited to share with you — one of them makes an appearance in a familiar equation from calculus! — but I'll save them for tomorrow. Stay tuned! -->

## Ví dụ 3: quy tắc xích (chain rule)

<!-- Let $E$ be the category whose objects are the Euclidean spaces $\mathbb{R}$, $\mathbb{R}^2$, $\mathbb{R}^3$, $\dots$, $\mathbb{R}^n$, $\dots$ and let's suppose each has a special point in it. That is, an object will not just be the space $\mathbb{R}^n$ but $\mathbb{R}^n$ together with a basepoint $x_0$. (Just let $x_0$ be your favorite $n$-dimensional vector. Pick the zero-vector if you like.) In this category, the morphisms $\mathbb{R}^n \xrightarrow{f} \mathbb{R}^m$ are the differentiable functions that preserve basepoints: if $y_0$ is the basepoint in $\mathbb{R}^m$ and $x_0$ is the basepoint in $\mathbb{R}^n$, then $f(x_0) = y_0$. -->

Đặt $\mathsf{E}$ là một phạm trù mà các vật của nó là các **không gian Euclid** (Euclidean spaces) $\mathbb{R}$, $\mathbb{R}^2$, $\mathbb{R}^3$, $\dots$, $\mathbb{R}^n$, $\dots$ và giả sử mỗi không gian có một điểm đặc biệt của riêng nó. Nghĩa là, một vật sẽ không chỉ là không gian $\mathbb{R}^n$ đơn thuần, mà sẽ là $\mathbb{R}^n$ cùng với một **điểm cơ sở** (basepoint) $x_0$; với $x_0$ là một vector $n$ chiều bạn có thể chọn tuỳ thích. Trong phạm trù này, các cấu xạ $\mathbb{R}^n \xrightarrow{f} \mathbb{R}^m$ là các hàm khả vi (differentiable functions) bảo toàn điểm cơ sở: nếu $y_0$ là điểm cơ sở trong $\mathbb{R}^m$ và $x_0$ là điểm cơ sở trong $\mathbb{R}^n$, thì $f(x_0) = y_0$.

<!-- Let $M$ be the category whose objects are positive integers and where a morphism $n \to m$ is an $m \times n$ matrix with real entries. In other words, there is an arrow from $n$ to $m$ for each such matrix. So here, composition of morphisms corresponds to matrix multiplication. -->

Đặt $\mathsf{M}$ là một phạm trù mà các vật của nó là các số nguyên dương và trong đó một cấu xạ 
$$n \to m$$
là một ma trận kích cỡ $m \times n$ với các phần tử là số thực. Nói cách khác, có một mũi tên từ $n$ đến $m$ ứng với mỗi ma trận như vậy. Ở đây, phép hợp thành của các cấu xạ tương ứng với phép nhân ma trận.

<!-- Define $D : E \to M$ as follows:

- **On objects in $E$**: let $D$ send $\mathbb{R}^n$ to its dimension, $n$.
- **On morphisms in $E$**: let $D$ send a differentiable function $f : \mathbb{R}^n \to \mathbb{R}^m$ to its $m \times n$ Jacobian matrix, evaluated at $x_0 \in \mathbb{R}^n$. -->

Giả sử, ta định nghĩa $D : E \to M$ như sau:
- **Với các vật trong $E$**, $D$ sẽ ánh xạ không gian $\mathbb{R}^n$ đến số chiều $n$ của nó.
- **Với các cấu xạ trong $E$**: $D$ sẽ ánh xạ một hàm khả vi $$f : \mathbb{R}^n \to \mathbb{R}^m$$ đến ma trận Jacobi (Jacobian matrix) kích thước $m \times n$ tại $x_0 \in \mathbb{R}^n$.

![Jacobian Matrix](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b568117d1ecea8dd23ef2c4_Ddoes2.jpg)

<!-- The $ij$-th entry of the matrix $Df \vert_{x_0}$ is $\frac{\partial f_i}{\partial x_j}(x_0)$, where $f_i$ is the $i$-th component function of $f = (f_1, f_2, \dots, f_m)$, and where $x_j$ is the $j$-th standard basis of $\mathbb{R}^n$. -->

Phần tử hàng $i$, cột $j$ của ma trận $Df \vert_{x_0}$ là 
$$\frac{\partial f_i}{\partial x_j}(x_0),$$
trong đó
- $f_i$ là hàm thành phần thứ $i$ của $f = (f_1, f_2, \dots, f_m)$,
- và $x_j$ là **cơ sở chuẩn tắc thứ $j$** ($j$-th standard basis) của $\mathbb{R}^n$.

<!-- Now, is $D$ a functor? If so, then it must respect composition. Let's check this. Suppose $\mathbb{R}^m \xrightarrow{g} \mathbb{R}^k$ is another basepoint-preserving differentiable function. Does the following equality hold? -->

Bây giờ, liệu $D$ có phải là một hàm tử không? Nếu có, thì nó phải bảo toàn phép hợp thành. Ta hãy thử kiểm tra. 

Giả sử $\mathbb{R}^m \xrightarrow{g} \mathbb{R}^k$ là một hàm khả vi nào đó khác bảo toàn điểm cơ sở. Liệu đẳng thức sau có đúng không?

![Chain Rule Composition](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b56813291372b09ff8337d0_composition.jpg)

<!-- Of course, it does! It's the chain rule from multivariable calculus! To find the Jacobian of $g \circ f$ at $x_0$, we simply multiply the Jacobian of $f$ at $x_0$ on the left by the Jacobian of $g$ at $f(x_0)$. And in the special case when $n = m = 1$, we recover the familiar single-variable equation: -->

Tất nhiên là đúng! Đây chính là **quy tắc xích** (chain rule) trong giải tích đa biến! Để tìm ma trận Jacobi của $g \circ f$ tại $x_0$, chúng ta chỉ cần nhân ma trận Jacobi của $f$ tại $x_0$ với ma trận Jacobi của $g$ tại $f(x_0)$ từ bên trái. Và trong trường hợp đặc biệt khi $n = m = 1$, chúng ta thu được phương trình quen thuộc trong trường hợp đơn biến.

![Single Variable Chain Rule](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b568140ffab61603af44f1b_chainrule.jpg)

<!-- A quick check will show that if $\mathbb{R}^n \xrightarrow{f} \mathbb{R}^n$ is the identity function, then $Df \vert_{x_0}$ is indeed the $n \times n$ identity matrix. -->

Thử kiểm tra nhanh sẽ thấy rằng: nếu $\mathbb{R}^n \xrightarrow{f} \mathbb{R}^n$ là hàm đồng nhất (identity function), thì $Df \vert_{x_0}$ thực sự là ma trận đơn vị (identity matrix) kích thước $n \times n$.


<!-- Thanks to calculus, our $D$ is indeed a functor.
 -->
Vậy là, theo kiến thức phương pháp tính (calculus) đã biết, $D$ của chúng ta thực sự là một hàm tử.

<!-- ## Example 4: contravariant functors -->
## Ví dụ 4: hàm tử phản biến (contravariant functors)

<!-- There is a functor $F : \mathsf{Vect}_\mathbb{k} \to \mathsf{Vect}_\mathbb{k}$ where $\mathsf{Vect}_\mathbb{k}$ consists of all vector spaces over a field $\mathbb{k}$ with linear transformations as morphisms. This $F$ sends a vector space $V$ to $\text{hom}(V, \mathbb{k})$, the space of linear functions $V \to k$. This space of maps is called the dual space of $V$ and is sometimes denoted $V^*$. What do you think this functor does to morphisms? That is, given a linear map $V \xrightarrow{f} W$, how can we get a map $F(f)$ between $\text{hom}(V, \mathbb{k})$ and $\text{hom}(W, \mathbb{k})$? -->


Cho hàm tử 
$$F : \mathsf{Vect}_\mathbb{k} \to \mathsf{Vect}_\mathbb{k},$$
trong đó $\mathsf{Vect}_\mathbb{k}$
- bao gồm tất cả các không gian vector (vector spaces) trên một trường (field) $\mathbb{k}$, và
- các cấu xạ chính là các phép biến đổi tuyến tính (linear transformations).

Hàm tử $F$ sẽ
- ánh xạ một không gian vector $V$ tới $\text{hom}(V, \mathbb{k})$, và
- ánh xạ không gian của các hàm tuyến tính từ $V$ tới $\mathbb{k}.$

Không gian các ánh xạ này được gọi là [**không gian đối ngẫu**](https://www.math3ma.com/blog/what-is-a-natural-transformation-2) (dual space) của $V$ và đôi khi được kí hiệu là $V^*$. Bạn nghĩ hàm tử này sẽ làm gì với các cấu xạ? Tức là, với một ánh xạ tuyến tính $V \xrightarrow{f} W$, chúng ta có thể tạo ra một ánh xạ $F(f)$ giữa $\text{hom}(V, \mathbb{k})$ và $\text{hom}(W, \mathbb{k})$ như thế nào?

<!-- A map $F(f) : \text{hom}(V, \mathbb{k}) \to \text{hom}(W, \mathbb{k})$ would have to take a linear transformation $\phi$ with domain $V$ and send it to one with domain $W$, and it would have to do it using $f : V \to W$ somehow. I'm not sure if there's a way to do this---the arrows simply don't line up. -->

Một ánh xạ 
$$F(f) : \text{hom}(V, \mathbb{k}) \to \text{hom}(W, \mathbb{k})$$
sẽ cần lấy một phép biến đổi tuyến tính $\phi$ với tập nguồn là $V$ và ánh xạ đến một phép biến đổi tính tính khác tập nguồn là $W$, thông qua 
$$f : V \to W$$ 
theo một cách nào đó. Tôi không chắc liệu có cách nào để làm được điều này không --- các mũi tên dường như không khớp nhau.

![Not Helpful Diagram](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b568153d1ecea95463ef2cd_nothelpful.jpg)

<!-- BUT, if we instead started with a linear transformation on $W$, say $\phi : W \to k$, we could obtain a linear transformation on $V$ by precomposing with $f$! -->

NHƯNG, nếu thay vào đó chúng ta bắt đầu với một phép biến đổi tuyến tính trên $W$, chẳng hạn như
$$\phi : W \to k,$$
thì chúng ta có thể thu được một phép biến đổi tuyến tính trên $V$ bằng cách **tiền hợp** (precompose) với $f$!

![Precomposition](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b56816c48578387421f2d13_precomp%20copy.jpg)

<!-- So let's define $F(f) := f^*$, typically called a pullback, to be the function $f^*$ that takes a linear transformation $\phi : W \to k$ and sends it to $\phi \circ f : V \to k$, in other words, $f^*(\phi) = \phi \circ f$. -->

Vậy hãy định nghĩa $F(f) := f^*$, thường được gọi là **phép kéo ngược** (pullback), là một hàm $f^*$ nhận một phép biến đổi tuyến tính
$$\phi : W \to k$$
và ánh xạ nó tới 
$$\phi \circ f : V \to k,$$
nói cách khác, 
$$f^*(\phi) = \phi \circ f.$$

<!-- See how this assignment of $F$ reverses arrows? -->
Bạn có thấy phép gán $F$ này đảo ngược chiều mũi tên không?

![Pullback](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b5681865239f8c4c5cb7e53_pullback.jpg)

<!-- We give functors with this arrow-flipping property a special name--contravariant. The "normal" functors (as defined yesterday) are then called covariant. Formally, a contravariant functor $F : C^{op} \to D$ (sometimes you'll see the "op" placed on the $C$ to remind you, "Hey! this functor's contravariant!") has the same data and properties as a covariant functor, except that the composition property is now $F(f \circ g) = F(g) \circ F(f)$ whenever $f$ and $g$ are composable morphisms in $C$. -->

Những hàm tử có tính chất đảo ngược mũi tên như thế này có một cái tên rất đặc biệt – **phản biến** (contravariant). Các hàm tử “bình thường” (như đã định nghĩa hôm qua) được gọi là **đồng biến** (covariant). Về mặt hình thức, một hàm tử phản biến 
$$F : \mathsf{C}^{op} \to \mathsf{D}$$
(đôi khi bạn sẽ thấy chữ “op” được đặt trên $C$ để nhắc rằng, “Này! Đây là một hàm tử phản biến!”) có cùng dữ kiện và tính chất như một hàm tử đồng biến, ngoại trừ tính chất hợp cấu xạ bây giờ là 
$$F(f \circ g) = F(g) \circ F(f)$$
với $f$ và $g$ là các cấu xạ hợp thành được trong $\mathsf{C}$.

![Contravariant Functor](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b5681919375dda312e9e2d3_cocontra.jpg)

<!-- For practice, you could try checking that the functor $F : \mathsf{Vect}_\mathbb{k} \to \mathsf{Vect}_\mathbb{k}$ we defined above is indeed a contravariant functor. (We only discussed its action on morphisms and objects but didn't check that it satisfies the functorial properties.) -->

Bài tập nhỏ: bạn có thể thử kiểm tra xem hàm tử 
$$F : \mathsf{Vect}_\mathbb{k} \to \mathsf{Vect}_\mathbb{k}$$
mà chúng ta đã định nghĩa ở trên thực sự là một hàm tử phản biến hay không. (Trong phần ngay trên, ta chỉ mới bàn về tác động của nó lên các vật và cấu xạ mà chưa kiểm tra xem liệu nó có thỏa mãn các tính chất của một hàm tử hay không.)

<!-- ## Example 5: representable functors -->
## Ví dụ 5: hàm tử biểu diễn được (representable functors)

<!-- If you're familiar with some basic topology, then you might like our last example: -->

Nếu bạn có chút kinh nghiệm với topo, thì có thể bạn sẽ thích ví dụ cuối cùng này:

<!-- There is a contravariant functor $O$ from $\mathsf{Top}^{op}$ to $\mathsf{Set}$ that associates to each topological space $X$ its set $O(X)$ of open subsets. On morphisms, $O$ takes a continuous function $f : X \to Y$ to $f^{-1} : O(Y) \to O(X)$ where $f^{-1}$ is a function sending an open set $U$ in $Y$ to the open set $f^{-1}(U)$ in $X$. (We know $f^{-1}(U)$ is open since $f$ is continuous!) -->

Một hàm tử phản biến  $\mathscr{O}$ từ $\mathsf{Top}^{op}$ đến $\mathsf{Set}$

- gán mỗi không gian topo $X$ với một tập hợp $\mathscr{O}(X)$ gồm các tập con mở (open subsets) của $X$.

- Về phần các cấu xạ,  $\mathscr{O}$ sẽ nhận một hàm liên tục $f : X \to Y$ và ánh xạ nó thành $$f^{-1} : \mathscr{O}(Y) \to \mathscr{O}(X),$$ trong đó $f^{-1}$ là một hàm ánh xạ một tập mở $U$ trong $Y$ đến một tập mở $f^{-1}(U)$ trong $X$. (Ta biết $f^{-1}(U)$ là tập mở là bởi $f$ là một hàm liên tục!)

<!-- Now here's what's cool: it turns out that  $\mathscr{O}$ is a very, very special kind of functor---it is representable. I won't go into the details here, but in short, for any category $C$, a (covariant or contravariant) functor $F : C \to \text{Set}$ is said to be representable if there is an object $c$ in $C$ so that for all objects $x$ in $C$, the elements of $F(x)$ are really maps $x \to c$ (or maps $c \to x$, depending on the "variance" of $F$). In this case, we say $F$ is represented by the object $c$. -->

Và điều thú vị là: $\mathscr{O}$ thực sự là một loại hàm tử rất đặc biệt – nó là một hàm tử biểu diễn được. Tôi sẽ không đi vào chi tiết ở đây, nhưng nói ngắn gọn, với bất kì phạm trù $\mathsf{C}$ nào, một hàm tử (đồng biến hoặc phản biến)
$$F : \mathsf{C} \to \mathsf{Set}$$
được coi là biểu diễn được (representable) nếu tồn tại một vật $c$ trong $\mathsf{C}$ sao cho với mọi vật $x$ trong $\mathsf{C}$, các phần tử của $F(x)$ thực chất là các ánh xạ $x \to c$ (hoặc $c \to x$, tùy thuộc vào "sự biến dạng" (variance) của $F$). Trong trường hợp này, chúng ta nói rằng $F$ được biểu diễn bởi vật $c$.

<!-- I know this may sound like a head-scratcher, but we've seen this before! Remember our discussion on that measly space with two points, a.k.a. the Sierpinski space, $S$? In that post, we discovered that for any topological space $X$, continuous functions $X \to S$ are in one-to-one correspondence with the open subsets of $X$. -->

Tôi biết điều này có vẻ hơi khó hiểu, nhưng chúng ta đã từng gặp trường hợp này trước đây! Hãy nhớ lại cuộc ví dụ về về không gian rất nhỏ với hai điểm, còn được gọi là [không gian Sierpinski](https://www.math3ma.com/blog/the-sierpinski-space-and-its-special-property), $S$? Lúc đó, ta đã phát hiện rằng đối với bất kì không gian topo $X$ nào, các hàm liên tục 
$$X \to S$$
đều có một tương ứng một-một với các tập con mở của $X$.

 

![Sierpinski Space](https://cdn.prod.website-files.com/5b1d427ae0c922e912eda447/5b5681bf9375ddf64ce9e2d9_sier.jpg)

<!-- Friends, that's precisely the statement that  $\mathscr{O}$ is a representable functor, represented by the one and only Sierpinski space! Who knew two little dots could be so special? -->
Vậy đó, đây chính là cách nói rằng $\mathscr{O}$ là một hàm tử biểu diễn được, và nó được biểu diễn bởi không gian Sierpinski duy nhất! Ai mà ngờ rằng hai điểm nhỏ bé lại có thể đặc biệt đến vậy?

<!-- Pretty cool, huh? -->
Thật thú vị, đúng không?

<!-- I'd love to chat more about representability on the blog, but to do so, we first need to understand natural transformations. And that's what we'll do next week! -->

Tôi rất muốn nói thêm về tính biểu diễn được, nhưng để làm được điều đó, trước tiên chúng ta cần hiểu về các phép biến đổi tự nhiên. Và đó sẽ là chủ đề của bài tiếp theo!

## Tham khảo

- Tai-Danae Bradley. (2017, Janary 31). *What is a Functor? Definitions and Examples, Part 1* Math3ma. [https://www.math3ma.com/blog/what-is-a-functor-part-1](https://www.math3ma.com/blog/what-is-a-functor-part-1)

- Tai-Danae Bradley. (2017, February 2). *What is a Functor? Definitions and Examples, Part 2* Math3ma. [https://www.math3ma.com/blog/what-is-a-functor-part-2](https://www.math3ma.com/blog/what-is-a-functor-part-2)

