범주론(Category theory)
대상과 그 사이의 화살표, 그리고 화살표를 잇는 합성만으로 수학의 구조를 다루는 이론. 집합(set)과 함수(function), 군과 준동형(homomorphism), 크기와 행렬(matrix), 나누어떨어짐이 모두 범주(category)이고, 성질을 원소(element) 대신 화살표 사이의 관계로 적는다.
시계의 시각 a(0부터 11까지)를 '짝수 시인가, 홀수 시인가'로 줄이는 방법을 두 가지 생각해 봅시다. 먼저 4로 나눈 나머지(remainder)를 구한 뒤 그것을 다시 2로 나눈 나머지를 구해도 되고, 먼저 6으로 나눈 나머지를 구한 뒤 2로 나눈 나머지를 구해도 됩니다. 7시라면 7 → 3 → 1이고 7 → 1 → 1이라 둘 다 1(홀수)입니다. 아래 그림은 이 네 집합 A = {0, …, 11}, B = {0, 1, 2, 3}, C = {0, …, 5}, D = {0, 1}과 네 함수를 점과 화살표로 그린 것입니다. 어느 길로 가도 결과가 같을 때 이 그림이 가환한다(commute)고 말합니다. 시각 a =
화살표를 바꿔 보면 몇 가지가 보입니다. 두 화살표를 모두 '(n + 1) mod 2'로 바꿔도 그림은 다시 가환합니다. 가환성은 화살표 하나하나가 아니라 합성한 결과에 대한 성질입니다. 반대로 한 시각에서만 어긋나도 가환하지 않습니다. 가환 그림은 '이 두 계산은 같다'는 등식 여러 개를 한꺼번에 적는 방법이고, 범주론의 정리 대부분은 어떤 그림이 가환한다는 문장으로 적힙니다.
범주(category)는 세 가지로 이루어집니다. 대상(object)들이 있고, 두 대상 A, B 사이에 화살표(arrow, 사상이라고도 합니다)
요구하는 것은 둘뿐입니다. 합성은 결합법칙(associativity)
- 행렬. 대상은 자연수(natural number) 0, 1, 2, …이고, n에서 m으로 가는 화살표는 m×n 행렬입니다. 합성은 행렬의 곱(matrix multiplication)이고 항등 화살표는 단위행렬입니다. 크기가 맞는 행렬끼리만 곱할 수 있다는 규칙이 곧 '끝과 시작이 맞물려야 합성된다'는 규칙이고, 행렬 곱의 결합법칙이 범주의 결합법칙입니다. n을 ℝⁿ으로 보내면 m×n 행렬과 ℝⁿ → ℝᵐ 선형변환(linear transformation)이 빠짐없이 하나씩 대응하고, 유한 차원 실수(real number) 벡터 공간(vector space)은 모두 어떤 ℝⁿ과 동형입니다. 그래서 행렬의 범주와 '유한 차원 실수 벡터 공간과 선형변환'의 범주는 동치(equivalent)입니다. 대상끼리 일대일로 대응하지는 않지만(n차원 공간은 무수히 많습니다), 동형(isomorphism)인 대상을 같게 보면 같은 범주라는 뜻입니다.
- 나누어떨어짐. 대상은 양의 정수(integer)이고, a가 b를 나누면(a | b) a에서 b로 가는 화살표를 하나 두고, 아니면 두지 않습니다. 합성은 'a | b이고 b | c이면 a | c'라는 추이성(transitivity)이고, 항등 화살표는 a | a입니다. 여기서 화살표는 함수가 아니라 '나누어떨어진다'는 사실 하나입니다. 두 대상 사이에 화살표가 많아야 하나인 범주는 반사적이고 추이적인 관계(준순서, preorder)와 같은 것이고, 나누어떨어짐처럼 a | b와 b | a에서 a = b가 나오면 부분 순서라 합니다.
- 대상이 하나인 범주. 대상이 하나뿐이면 화살표는 모두 그 대상에서 그 대상으로 가므로 언제나 합성할 수 있습니다. 화살표들과 합성은 결합법칙과 항등원(identity element)을 가진 연산, 곧 모노이드(monoid)입니다. 모든 화살표에 되돌리는 화살표가 있으면 군입니다.
- 군과 준동형. 대상이 군이고 화살표가 연산을 지키는 함수(준동형)인 범주 Grp도 있습니다. 군 하나가 위에서는 범주 전체였는데 여기서는 대상 하나입니다. 같은 것을 여러 층위에서 볼 수 있다는 것이 범주론의 특징입니다.
- 타입(type)과 프로그램. 대상은 정수·문자열 같은 타입이고 화살표는 한 타입의 값을 받아 다른 타입의 값을 돌려주는 함수입니다. 여기서 함수는 부작용이 없고 언제나 끝나는 것으로 제한합니다. 끝나지 않는 계산이 섞이면 법칙을 확인하기가 훨씬 까다로워집니다. 이 범주에 어떤 구조가 있어야 함수를 값처럼 다룰 수 있는지가 데카르트 닫힌 범주(cartesian closed category)와 타입 이론(type theory)의 주제입니다.
범주론은 대상의 속을 들여다보지 않고 화살표만으로 말합니다. 화살표
모든 화살표의 방향을 뒤집어도 범주입니다. 이것을 반대 범주(opposite category)
두 가지를 짚어 둡니다. 첫째, 범주의 대상이 꼭 '구조를 가진 집합'일 필요는 없습니다. 나누어떨어짐의 범주에서 대상은 수이고 화살표는 사실 하나이며, 행렬의 범주에서 대상은 크기일 뿐입니다. 둘째, 크기 문제입니다. 모든 집합의 모임은 집합이 아니므로(러셀의 역설, Russell's paradox) Set의 대상 전체는 집합이 아닌 '모임'(class)으로 다룹니다. 두 대상 사이의 화살표들이 언제나 집합을 이루는 범주를 국소적으로 작다(locally small)고 합니다. 이 페이지에 나온 범주는 모두 국소적으로 작습니다. 대상 전체와 화살표 전체까지 집합을 이루면 '작은' 범주라 합니다.
무엇을 얻을까요? 첫째, 증명 하나가 여러 분야에서 한꺼번에 일합니다. '곱은 하나뿐인 동형을 빼고는 하나뿐이다'는 집합의 곱집합, 최대공약수(greatest common divisor), 논리의 '그리고'에 대해 한 번에 증명됩니다. 둘째, 분야 사이에 다리가 놓입니다. 범주에서 범주로 구조를 지키며 가는 사상을 함자(functor)라 하는데, 기준점을 정한 위상수학(topology)의 공간에 군을 붙이는 기본군(fundamental group)은 함자이고, 그래서 대수의 계산으로 위상수학의 불가능성을 증명할 수 있습니다. 셋째, 프로그램의 구조가 드러납니다. 실패·여러 갈래·상태 같은 계산을 한 가지 합성 규칙으로 다루는 모나드(monad)가 그 예입니다. 변환을 보면 대상이 보인다는 이 태도는 대칭과 불변량(invariant)에서 본 클라인의 생각을 끝까지 밀고 간 것이라 할 수 있습니다.
범주론은 1945년 새뮤얼 에일렌베르크와 손더스 매클레인의 논문 「자연 동치의 일반 이론」(General Theory of Natural Equivalences)에서 시작되었습니다. 두 사람은 대수적 위상수학을 연구하다가 '자연스러운 동형'이라는 말에 정확한 뜻을 주려 했고, 그러려면 자연 변환(natural transformation)을, 그러려면 함자를, 그러려면 범주를 정의해야 했습니다. 매클레인의 회고에 따르면 '범주'는 아리스토텔레스와 칸트에게서, '함자'는 철학자 루돌프 카르나프에게서 빌린 말입니다. 알렉산더 그로텐디크가 1957년 이른바 도호쿠 논문에서 호몰로지 대수를 범주의 언어로 다시 세우고 대수기하학을 그 위에 지으면서 범주론은 수학의 일상 언어가 되었습니다. 1958년 대니얼 칸이 수반 함자(adjoint functor)를 정의했고, 1963년 윌리엄 로베어는 박사 논문에서 대수 이론을 범주로 다루며 범주를 수학과 논리의 기초(basics)로 쓰는 길을 열었습니다. 1989년 에우제니오 모지가 계산의 효과를 모나드로 적는 방법을 내놓으면서 범주론은 프로그래밍 언어 이론으로도 퍼졌습니다.
이어지는 곳. 범주 사이의 사상은 함자, 함자 사이의 사상은 자연 변환으로, 이 셋이 범주론의 기본 어휘입니다. 대상을 속이 아니라 관계로 정의하는 방법은 보편 성질에서, 그 방법이 늘 통하는 근거인 '대상은 화살표들로 정해진다'는 요네다 보조정리(Yoneda lemma)에서 볼 수 있습니다. 올림과 내림, ∃와 ∀, 자유 구성처럼 서로 짝을 이루는 구성은 수반 함자가 설명하고, 그 짝에서 모나드가 나옵니다. 대상이 하나인 범주가 곧 모노이드라는 사실은 범주를 '여러 대상을 가진 모노이드'로 보게 해 줍니다. 커링(currying)이 되는 범주인 데카르트 닫힌 범주는 람다 계산(lambda calculus)과 커리–하워드 대응(Curry–Howard correspondence)을 한 그림에 모읍니다. 같음을 동형으로 바꿔 읽는 태도는 호모토피 타입 이론(homotopy type theory)에서 '동치인 것은 같다'는 공리(axiom)로까지 나아갑니다. 행렬의 범주는 행렬의 곱을, 나누어떨어짐의 범주는 최대공약수를 새 눈으로 보게 합니다. 이 어휘 위에 더 쌓은 구조로는 재귀(recursion)와 귀납을 한 틀로 모으는 시작 대수, 순서에서의 수반인 갈루아 연결(Galois connection), 나란히 놓기 ⊗를 더한 모노이드 범주, 화살표 모음을 거리나 참·거짓으로 바꾼 풍부화된 범주(enriched category), 국소 자료를 붙이는 층과 층들의 세계인 토포스(topos)가 있습니다. 이 어휘가 최대공약수, 쌍대 공간(dual space), 연쇄법칙(chain rule), 내림과 올림에서 각각 어떻게 일하는지는 긴 글 「화살표만으로 본 수학」에서 따라갈 수 있습니다.
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 함수
… x 가 있습니다. 이 두 성질만 남기고 집합과 함수 대신 온갖 구조와 그 사이의 대응에 쓰는 것이범주론입니다. 1930년대 미국의 논리학자 알론조 처치가 만든 람다 계산은 함수를 만드는 일과 함수에 …
- 행렬의 곱
… 대해 모노이드를 이룹니다. 크기가 다른 행렬까지 모으면 m×n 행렬을 n에서 m으로 가는 화살표로 삼는범주가 되고(안쪽 크기가 맞을 때만 곱할 수 있다는 것이 화살표를 이어 붙이는 조건입니다), 두 행렬을 나란히 …
- 단사·전사·전단사
… 비교합니다(집합의 크기). 원소를 보지 않고 '되돌리는 함수가 있다'는 이 성질만 떼어 낸 것이범주론의 동형 사상이고, 집합과 함수의 범주에서 동형 사상이 곧 전단사입니다. 크기가 다른 유한집합 사이에는 …
- 그래프
… 이어 붙인 길들을 새 화살표로 보면, 길 잇기가 결합법칙을 지키고 길이 0인 길이 항등원 구실을 하므로범주(그 그래프가 만드는 자유 범주)가 됩니다. 0과 1만으로 된 길이 n인 문자열(비트열)들을 꼭짓점으로 …
- 군
… 하는 일은 대칭과 불변량에서 이어집니다. 군 하나는 대상이 하나뿐이고 모든 화살표를 되돌릴 수 있는범주로 볼 수 있어서, 군론의 많은 개념이 범주론에서 일반화됩니다. 갈루아의 대응은 두 함수로 적힙니다. …
- 위상수학
… 준동형을 대응시키는 이 규칙은 합성을 지키는 함자의 대표적인 예이고, 에일렌베르크와 매클레인이범주론을 세운 것도 이런 대응을 정확히 다루기 위해서였습니다. 푸앵카레는 1904년, 모든 고리가 한 점으로 …
- 타입 이론
… 시스템 F⟧, 타입 연산자, 의존 타입으로 이어집니다. 타입과 함수가 이루는 구조를 따로 떼어 보면범주론이 되고, 곱 타입을 갖춘 단순 타입 람다 계산이 데카르트 닫힌 범주의 내부 언어라는 사실이 두 …
- 직관주의 논리
… 열린 집합 모형은 둘 다 '어디까지 알려졌는가'에 따라 달라지는 참을 다루는 방식이라, 위상수학과범주론으로 이어집니다. 배중률을 모든 경우에 한꺼번에 주는 프로그램이 없다는 사실은 정지 문제의 다른 …
- 대수적 자료형
… 되부름(fold)은 그 해가 갖는 보편 성질에서 나옵니다. 이 규칙이 함자의 예이며, 이 관점이범주론으로 이어집니다. 이어지는 곳. 합과 곱을 개수 대신 논리로 읽는 법, 곧 '그리고'는 쌍이고 '또는'은 …
- 다형성과 시스템 F
… 초록, 다르면 빨강입니다. 왼쪽 위 칸을 누르면 수가 바뀝니다. r은 , f는 입니다. 그림의 네모는범주론의 말로 하면 자연성 사각형입니다. List는 타입 A를 List A로, 함수 f를 map f로 보내는 …
- 호모토피 타입 이론
… 집합이 아니라 군류입니다. 군류는 원소들 사이에 화살표가 있고 모든 화살표를 거꾸로 되돌릴 수 있는 구조(범주의 한 종류)이며, 두 원소 사이에 화살표가 여럿일 수 있습니다. 같음의 증명이 이 화살표 노릇을 하니 …
- 모노이드
… 짝에서 목록(List) 모나드가 나옵니다. 함수형 프로그래밍의 foldMap이 바로 이 준동형입니다.범주의 눈으로 보면 모노이드는 대상이 하나뿐인 범주 입니다. 대상 ★ 하나에 원소마다 화살표 ★ → ★ 하나를 …
- 함자
… 두 번 훑든 한 번 훑든 결과가 같다는 뜻입니다. 이것을 일반화한 것이 함자 (functor)입니다.범주𝒞에서 𝒟로 가는 함자 F는 𝒞의 대상 A마다 𝒟의 대상 F(A)를, 화살표 f: A\to B 마다 …
- 자연 변환
… 왜 좋은지는 선형변환과 행렬을 견주어 보면 드러납니다. 모든 것의 출발점인 범주와 함자의 정의는범주론에 있습니다. 함자들을 대상으로, 자연 변환을 화살표로 삼으면 다시 범주가 되는데, '오늘'과 '내일' 두 …
- 보편 성질: 곱, 쌍대곱, 극한
… 다른 후보로 가는 하나뿐인 화살표입니다. 이 성질을 화살표만으로 적은 것이 곱 (product)입니다.범주에서 두 대상 A, B의 곱은 대상 P와 두 화살표 \pi_1: P\to A , \pi_2: P\to B …
- 수반 함자
… 보는 포함 i: ℤ → ℝ을 가운데 두고, 올림은 그 왼쪽에, 내림은 그 오른쪽에 붙는 짝입니다. 순서는범주이고 단조 함수는 함자이므로, 이것이 가장 작은 수반 (adjunction)의 예입니다. 순서 사이의 …
- 요네다 보조정리
… 화살표)을 넣어 보는 한 수가 요네다 보조정리 (Yoneda lemma) 증명의 핵심입니다. 일반적인범주에서도 대상 A로 들어오는 화살표를 모으면 함자 하나가 생깁니다. 대상 X마다 화살표 X → A들의 집합 …
- 모나드
… 끊어 묶어도 결과가 같다'입니다. 곧 A → TB 모양의 함수들을 화살표로 삼고 >=>를 합성으로 삼으면범주가 된다는 것이고(클라이슬리 범주), 세 법칙은 범주의 항등 화살표 법칙과 결합법칙 그 자체입니다. 이 …
- 데카르트 닫힌 범주
… 바뀝니다. 다른 표 데카르트 닫힌 범주 (cartesian closed category)는 이 일이 가능한범주입니다. 끝 대상 1과 모든 두 대상의 곱 A × B가 있고(보편 성질), 모든 A, B에 대해 '지수 …
- 하위 타입과 공변·반변
… 설정에서 함수 타입의 인자를 반변으로 검사하지만, 메서드의 인자는 여전히 두 방향을 모두 허락합니다.범주론으로 보면 이 모든 것이 한 문장으로 줄어듭니다. 하위 타입 관계는 순서이고, 순서는 두 대상 사이에 …
- F-대수와 fold: 재귀와 귀납의 범주론
… 칸입니다. 아래 식은 모든 생성자를 한꺼번에 바꿔 쓴 것입니다. 이 계산이 늘 같은 모양이라는 것을범주론으로 적으면 이렇습니다. 자연수의 생성자는 '원소 하나(0)'와 '함수 하나(S)'입니다. 이 둘을 한데 …
- 갈루아 연결
… 아래쪽(왼쪽) 짝, g를 위쪽(오른쪽) 짝이라 부릅니다. 순서는 두 대상 사이에 화살표가 많아야 하나인범주이고 단조 함수는 함자이므로, 갈루아 연결은 순서에서의 수반 함자입니다. 그 페이지에서 본 올림 ⊣ …
- 모노이드 범주와 끈 그림
… 누르는 것'은 다른 과정입니다. 모노이드 범주 (monoidal category)는 이 구조를 갖춘범주입니다. 범주 𝒞에 두 대상 A, B를 나란히 놓은 대상 A\otimes B 와 두 화살표를 나란히 놓은 …
- 층: 국소에서 전체로
… 좁히든 같아야 합니다. 이것을 준층 (presheaf)이라 합니다. 열린 집합들을 포함 관계로 순서 지으면범주이고, 준층은 그 범주에서 집합의 범주로 가며 화살표의 방향을 뒤집는 함자입니다. 준층이 층 …
- 토포스: 집합을 닮은 우주
… 와 정확히 하나씩 대응합니다. 그래서 원소가 n개인 집합의 부분집합은 2^n 개입니다(멱집합).범주론의 말로 하면, 두 원소 집합 Ω = {참, 거짓}은 '부분집합을 분류하는 대상'입니다. X에서 Ω로 가는 …
- 풍부화된 범주: 거리를 범주로
… '두 길을 이어 붙이면 길이 된다'는 말입니다. 그리고 제자리에 있는 데는 0km가 듭니다. 이 두 문장을범주의 두 조건과 나란히 놓아 봅시다. 범주에서는 A → B와 B → C 화살표를 이어 붙인 A → C …