시리즈 | Category Theory - 1. 범주의 정의와 예시

수학적 구조의 뼈대, 범주론(Category Theory) 입문하기

시리즈 | Category Theory - 1. 범주의 정의와 예시
범주론에서 다루는 diagram(그림)의 예시이다.

Introduction

범주론은 기하학, 위상수학, 수학기초론, 그리고 정보과학에 이르기까지 다양한 분야에서 나타나는 일반적인 개념을 통합한 이론이다. 이 시리즈에서는 범주, 사상, 함자, 그림, 극한과 역극한, 쌍대성 같은 범주론의 기본적인 개념을 다양한 예시와 함께 설명할 것이다. 이 글에 등장하는 예시들 중에서는 상당히 많은 배경지식을 요구하는 경우도 있지만, 예시가 이해가 잘 안 된다면 그냥 넘어가도 글의 흐름에는 영향을 주지 않을 것이므로 걱정하지는 말자. 마지막으로, 이 글에서는 증명을 거의 다 생략할 예정이다. 증명이 생략된 대부분의 property는 독자가 직접 증명해볼 수도 있을 것이다. (???$^1$:"증명은 기계가 한다. ㅎㅎ.")


범주의 정의

그렇다면 범주는 무엇일까? 범주의 정의는 다음과 같다.

Definition.
- Category $\mathcal{C} = (Obj(\mathcal{C}), Arw(\mathcal{C}))$는 Object와 Arrow로 구성된다.

- 각각의 arrow $f$에 대해, object $\mathrm{dom}(f)$와 $\mathrm{cod}(f)$가 각각 존재한다. (각각 domain과 codomain, 또는 source와 target이라 부르며, 이 때 $f:A\rightarrow B$로도 표기한다.)

- 두 arrow $f, g$에 대해 $\mathrm{cod}(f)=\mathrm{dom}(g)$이면, arrow $g\circ f$가 존재해 $$\mathrm{dom}(g\circ f) = \mathrm{dom}(f),\mathrm{cod}(g\circ f)=\mathrm{cod}(g)$$이고, $$f\circ(g\circ h)=(f\circ g)\circ h$$를 항상 만족한다. ($g\circ f$를 $f$와 $g$의 composition이라 부른다.)

- 각각의 object A에 대해, arrow $id_A:A\rightarrow A$가 존재하고(A의 identity arrow라 부른다.), 모든 arrow $f:A\rightarrow B$에 대해 $f\circ id_A=f=id_B\circ f$를 만족한다.

여러 가지 범주의 예시를 알아보기 전에 짚고 넘어가야 할 것이 한 가지 있는데, 각 object의 identity arrow가 유일한 지를 확인해야 한다. 증명은 정의에 의해 간단하게 할 수 있는데, $f$와 $g$가 모두 $A$의 identity arrow라고 가정하면 정의에 의해 $f = f\circ g = g$이므로 $f=g$이다. 따라서, 우리는 $id_A$라는 표기가 $A$의 유일한 identity arrow를 뜻한다고 말할 수 있게 된다.

범주의 예시

다양한 구조의 범주 중 가장 간단한 예시는 $\mathbf{Set}$으로, object는 집합, domain이 $A$이고 codomain이 $B$인 arrow는 정의역이 $A$이고 공역이 $B$인 함수로 정의되는 범주이다(composition과 identity arrow의 정의는 아주 자연스럽다.). 이렇게 정의된 $\mathbf{Set}$이 위에서 정의한 범주의 정의에 부합한다는 것은 자명하다.

$\mathbf{Set}$과 아주 유사한 범주 또 하나를 알아보자. $\mathbf{Set}_\perp$으로 불리는 이 범주는 nominated set을 object로 가진다. 여기서 nominated set이란 어떤 집합 $A$와 그 원소 중 하나 $\perp_A\in A$의 순서쌍을 뜻한다. 그렇다면 이 범주의 arrow는 무엇일까? 자연스럽게, $(A,\perp_A)$가 source이고 $(B, \perp_B)$가 target인 arrow는 $f(\perp_A)=\perp_B$를 만족시키는 함수 $f:A\rightarrow B$가 된다. 두 arrow의 함수로서의 composition이 또다시 $\mathbf{Set}_\perp$의 arrow가 됨은 쉽게 알 수 있고, $A$의 identity arrow는 자신의 identity map이 된다.

nominated set과 같이, 어떤 집합 그리고 그 집합과 관계된 대상들의 순서쌍을 structured set이라고 한다.(군을 $(G,\cdot)$과 같이 표기하는 것을 생각하면 쉽게 이해할 수 있을 것이다.) 이때 structured set을 object, 두 structured set 사이의 함수 중 그 structure를 보존하는 것을 arrow로 가지는 범주를 생각할 수 있는데, 이렇게 구성된 범주의 예시로는

  • $\mathbf{Mon, Grp, Agrp, Rng, Crng}$(object가 각각 monoid, group, abelian group, ring, commutative ring이고 arrow는 homomorphism인 범주)
  • $\mathbf{Poset}$(object가 partially ordered set이고 arrow는 monotone map인 범주)
  • $\mathbf{Top}$(object가 topological space이고 arrow는 continuous map인 범주) 등이 있다.

참고로, 위의 모든 예시에서 composition은 일반적인 함수의 composition이고, identity arrow는 일반적인 identity map이다.

위에서 살펴본 예시들에서는 arrow가 기본적으로 특정 조건을 만족시키는, 두 집합 사이의 함수들이었다. 하지만 모든 arrow가 object 사이의 함수여야 하는 것은 아니다. 그 예시로, $\mathbf{Pfn}$이라는 범주를 살펴보자. 이 범주의 object는 그냥 집합일 뿐이지만, arrow는 조금 다르게 정의된다. 두 object $A, B$ 사이의 arrow $f$는 $A$의 한 부분집합에서 정의된 $B$로의 함수이다(이를 partial function이라고 부른다.). 이 범주에서의 identity arrow는 간단하게 identity map이라고 정의할 수 있지만, compostion을 정의할 때는 약간의 변화가 필요하다. 세 object $A, B, C$와 두 arrow $f:A\rightarrow B, g:B\rightarrow C$가 주어져 있을 때, $f$의 정의역을 $X$, $g$의 정의역을 $Y$, $\bar{f} := f\mid_X, \bar{g} := g\mid_Y$라고 두고 $U := \{x\in X\mid \bar{f}(x)\in Y\}$로 정의하자. 이제 $\bar{h}=\bar{g}\circ\bar{f}\mid_U$로 정의하면, $\bar{h}$는 $A$의 부분집합인 $U$에서 정의된 $C$로의 함수가 되고, 따라서 우리는 $g\circ f=\bar{h}$로 정의할 수 있다.(아래 그림 참고)

$\mathbf{Pfn}$

arrow가 함수가 아닌 범주의 예시를 하나만 더 살펴보자. $\mathbf{RelA}$는 object가 집합이고, 두 object $A,B$ 사이의 arrow $R:A\to B$는 $R\subset A\times B$인 집합 $R$으로 정의되는 범주이며, 두 arrow $R:A\to B,S:B\to C$의 composition은 $S\circ R:=\{(a,c)\in A\times C\mid\exists b\in B:((a,b)\in R\wedge(b,c)\in S\}$로 정의할 수 있다. 또한, 이 범주에서 object $A$의 identity arrow는 $\{(a,a)\in A\times A\mid a\in A\}$로 정의할 수 있다.

더 많은 예시

이제 주어진 범주 $\mathcal{C}$를 이용해 만들 수 있는 새로운 범주 몇 가지를 살펴보자. 나중에 universal property를 소개할 때 비슷한 예시를 더 많이 보게 될 것이다.

$\mathcal{C}^{\downarrow}$는 $\mathcal{C}$의 arrow를 object로 가지며, $\alpha:A_0\to A_1$에서 $\beta:B_0\to B_1$로의 arrow는 $f_1\circ \alpha=\beta\circ f_0$를 만족하는 $\mathcal{C}$의 두 arrow의 순서쌍 $(f_0,f_1)$로 정의된다. 이 때 두 arrow $(f_0,f_1),(g_0,g_1)$의 composition은 $\mathcal{C}$에서의 composition을 이용해 $(g_0\circ f_0,g_1\circ f_1)$로 정의할 수 있고, object $\alpha:A_0\to A_1$의 identity arrow는 $\mathcal{C}$에서의 $id_{A_0}$과 $id_{A_1}$의 순서쌍으로 정의된다. (아래 그림 참고)

$\mathcal{C}^\downarrow$

이번에는 $\mathcal{C}$의 object $S$를 이용해서 정의하는 범주를 알아보자. 유사한 범주 두 종류가 있는데 먼저 $(\mathcal{C}\downarrow S)$를 보면, object는 $\mathrm{cod}(\alpha)=S$인 $\mathcal{C}$의 arrow이고, 두 object $\alpha:A\to S,\beta:B\to S$ 사이의 arrow는 $\beta\circ f=\alpha$인 $\mathcal{C}$의 arrow $f:A\to B$로 정의된다. 자연스럽게, arrow $f:\alpha\to\beta,g:\beta\to\gamma$의 composition은 $\mathcal{C}$에서의 composition $g\circ f$이고, object $\alpha:A\to S$의 identity arrow는 $\mathcal{C}$에서 $A$의 identity arrow와 같다. 반대로2, $(S\downarrow\mathcal{C})$도 정의할 수 있다. $(\mathcal{C}\downarrow S)$에서 화살표의 위아래 방향을 뒤집으면 된다.(이해가 안된다면, 아래 그림을 보자.)

$(\mathcal{C}\downarrow S)$
$(S\downarrow\mathcal{C})$

duality가 무엇인지는 아직 설명하지 않았지만, 화살표의 방향을 뒤집는다는 표현을 직관적으로 확인할 수 있는 예시 하나를 보자. $\mathcal{C}$의 각 object $A$를 $A^{\mathrm{op}}$로, 각 arrow $f:A\to B$를 $f^{\mathrm{op}}:B^{\mathrm{op}}\to A^{\mathrm{op}}$로 대응시키면 새로운 범주 $\mathcal{C}^{\mathrm{op}}$를 얻을 수 있다. 그러면 자연스럽게 $g^{\mathrm{op}}\circ f^{\mathrm{op}}=(f\circ g)^{\mathrm{op}}$, $id_{A^{\mathrm{op}}}=id_A^{\mathrm{op}}$로 정의할 수 있다. (아래 사진을 보자.)

다음 예시는 기초적인 대수학 지식이 필요하다.

Definition.
- 어떤 집합 $S$에 대해, 함수 $\cdot:S\times S\to S$를 $S$의 binary operation이라고 한다. ($\cdot(a,b)=a\cdot b=ab$로 흔히 표기한다.)
- 어떤 집합 $G$와 그 binary operation $\cdot$이 다음 조건을 모두 만족하면 순서쌍 $(G,\cdot)$은 group이라고 한다.
$$\text{(i) }\forall a,b,c\in G,(ab)c=a(bc)\text{ (associativity)}$$ $$\text{(ii) }\exists 1\in G :(\forall a\in G, 1a=a=a1)\text{ (identity element)}$$ $$\text{(iii) }\forall a\in G\exists a^{-1}\in G : aa^{-1}=a^{-1}a=1\text{ (inverse element)}$$
- group $(G,\cdot)$이 다음 조건을 만족하면 abelian group이라고 한다.
$$\forall a,b\in G, ab=ba\text{ (commutativity)}$$
- 어떤 집합 $R$과 $R$의 두 binary operation $+,\cdot$이 다음 조건을 모두 만족하면, 순서쌍 $(R,+,\cdot)$는 ring이라고 한다.
$$\text{(i) }(G,+)\text{ 는 abelian group이다.}$$ $$\text{(ii) }\forall a,b,c\in R, (ab)c=a(bc)\text{ (associativity)}$$ $$\text{(iii) }\forall a,b,c\in R, a(b+c)=ab+ac,(a+b)c=ac+bc\text{ (distributivity)}$$
- 어떤 ring $R$에 대해, 어떤 abelian group $(M,+)$ 함수 $\cdot:R\times M\to M$이 다음을 만족하면, $M$을 left-$R$ module이라고 한다.
$$\text{(i) }\forall a,b\in R, m\in M, (ab)\cdot m=a\cdot(b\cdot m)\text{ (associativity)}$$ $$\text{(ii) }\forall a,b\in R, m\in M, (a+b)\cdot m=a\cdot m+b\cdot m\text{ (distributivity over }R)$$ $$\text{(iii) }\forall a\in R, m,n\in M, a\cdot(m+n)=a\cdot m+a\cdot n\text{ (distributivity over }M)$$

이제, module homomorphism을 arrow로 하면, 어떤 환 $R$ 위의 left module의 범주 $\mathbf{R-Mod}$을 정의할 수 있다. 이제, $\mathbf{Ch(R-Mod)}$라는 범주를 알아보자. 먼저, object는 몇 가지 조건을 만족하는, $\mathbb{Z}$에서 정의된 두 함수 $A_\bullet:\mathbb{Z}\to Obj(\mathbf{R-Mod}),d_\bullet:\mathbb{Z}\to Arw(\mathbf{R-Mod})$이다. 이 때, $A_n:=A_\bullet (n), d_n:=d_\bullet (n)$으로 쓰며, $d_n$의 source와 target이 각각 $A_n,A_{n-1}$와 $d_n\circ d_{n+1}=0\forall n\in\mathbb{Z}$를 만족해야 한다. 이제 arrow를 정의해보자. $\mathbf{Ch(R-Mod)}$의 arrow $f_\bullet:(A_\bullet,\alpha_bullet)\to(B_\bullet,\beta_\bullet)$은 함수 $f_\bullet:\mathbb{Z}\to Arw(\mathbf{R-Mod})$로 정의되는데, 이때 $f_n$은 source와 target이 각각 $A_n,B_n$이고, $f_n\circ \alpha_{n+1}=\beta_{n+1}\circ f_{n+1}\forall n\in\mathbb{Z}$를 만족해야 한다. 자연스럽게, $f_\bullet$과 $g_\bullet$의 composition은 $(g\circ f)_n=g_n\circ f_n$으로 정의하고, $(A_\bullet,d_\bullet)$의 identity arrow는 $f_n=id_{A_n}$으로 정의할 수 있다.

$\mathbf{Ch(R-Mod)}$

마지막으로, 조금 특이하게도 object가 단 하나뿐인 범주를 하나 알아보자. 먼저, monoid는 associativity를 만족하고 identity가 존재하는 binary operation이 주어진 집합을 뜻하는데, 이 때 monoid $S$는 그 자체로 $obj(S)=\{*\}$인 하나의 범주로 볼 수 있다. 또한, $S$의 각각의 원소 $g$에 대해, arrow $f_g:\to*$를 대응시키면, $S$의 monoid로서의 composition과 identity element에 의해 arrow의 composition과 *의 identity arrow가 자연스럽게 정의된다. 여기서 흥미로운 점은, 이 사실을 이용해 monoid를 'object가 하나뿐인 범주'로 정의하기도 한다는 것이다. (다만, 이 때는 arrow의 collection이 set이 될 정도로 충분히 작아야 한다는 조건이 붙으며, 이를 '작은 범주'라고 한다.)


각주

  1. 李仁錫 교수님의 <선형대수와 군>을 펼치면 이런 멘트를 지겹도록 볼 수 있을 것이다. 후속작인 <대수학>에서도 여전하다.
  2. 이렇게 화살표의 방향만 뒤집어지는 새로운 상황은 흔히 "Dually"라고 표현한다. 후에 duality를 다루고 나서 다시 알아보자.

참고자료

Simmons, H. (2011). An Introduction to Category Theory. Cambridge University Press.