수학 개념 지도
타입 이론과 범주론

보편 성질: 곱, 쌍대곱, 극한(Universal property: products, coproducts, limits)

대상을 속으로 짓지 않고, 다른 모든 대상과 맺는 관계로 정의하는 방법. 곱은 '두 대상으로 가는 화살표 쌍이 모두 거쳐 가는, 하나뿐인 길목'이다. 곱집합, 약수⁠(divisor)⁠ 순서의 최대공약수⁠(greatest common divisor)⁠, 논리의 '그리고'가 모두 곱이고, 이렇게 정의한 대상은 동형⁠(isomorphism)⁠을 빼고 하나뿐이다.

∀ f:X→A, g:X→B∃! u:X→A×B:π1∘u=f,  π2∘u=g\forall\, f: X\to A,\ g: X\to B\quad \exists!\,u: X\to A\times B:\quad \pi_1\circ u = f,\ \ \pi_2\circ u = g
먼저 보면 좋은 개념범주론

12와 20을 둘 다 나누는 수는 1, 2, 4입니다. 이 가운데 4는 특별합니다. 크기가 가장 커서가 아니라, 다른 공약수 1과 2가 모두 4를 나누기 때문입니다. '둘 다를 나누는 수라면 반드시 4를 거쳐 간다', 곧 모든 공약수가 4의 약수라는 것이 최대공약수를 정하는 성질입니다. 아래는 60의 약수들을 나누어떨어짐으로 이은 그림입니다. 아래에서 위로 가는 선은 '나눈다'는 화살표입니다. 점을 차례로 눌러 두 원소⁠(element)⁠를 고르세요(마지막으로 누른 두 점이 골라집니다). 볼 것: , 순서: .

노란 점이 고른 두 원소입니다. 청록 점은 둘 모두의 아래에 있는 원소이고, 큰 청록 고리가 그 가운데 곱입니다. 분홍 점은 둘 모두의 위에 있는 원소이고, 큰 분홍 고리가 쌍대곱입니다. 청록 점선은 다른 후보에서 곱으로 가는 하나뿐인 화살표, 분홍 점선은 쌍대곱⁠(coproduct)⁠에서 다른 후보로 가는 하나뿐인 화살표입니다.

이 성질을 화살표만으로 적은 것이 곱(product)입니다. 범주⁠(category)⁠에서 두 대상 A, B의 곱은 대상 P와 두 화살표 π1:P→A\pi_1: P\to A, π2:P→B\pi_2: P\to B로 이루어지는데, 다른 어떤 대상 X와 화살표 f:X→Af: X\to A, g:X→Bg: X\to B가 와도 π1∘u=f\pi_1\circ u = f, π2∘u=g\pi_2\circ u = g인 화살표 u:X→Pu: X\to P가 정확히 하나 있어야 합니다. 나누어떨어짐의 순서에서 읽으면 'P는 A와 B를 나누고, A와 B를 나누는 X는 모두 P를 나눈다', 곧 P = gcd(A, B)입니다. u가 '정확히 하나'라는 조건은 '모두 거쳐 가는 길목'을 화살표로 적은 것입니다. 순서에서는 화살표가 많아야 하나라서 이 조건이 저절로 성립하지만, 집합⁠(set)⁠처럼 화살표가 많은 범주에서는 이 조건이 곱을 곱답게 만듭니다.

순서 일반에서 곱은 '가장 큰 아래 경계'(하한⁠(lower bound)⁠, meet)이고, 부분집합⁠(subset)⁠의 포함 순서에서는 교집합입니다. 집합의 범주에서 곱은 순서쌍⁠(ordered pair)⁠의 집합 A × B이고, u는 x↦(f(x),g(x))x\mapsto(f(x), g(x))입니다. u의 두 성분이 f와 g로 정해져 있으니 u는 하나뿐입니다. 명제를 '함의'로 순서 지으면 곱은 'A 그리고 B'이고, 타입⁠(type)⁠의 범주에서는 순서쌍 타입, 벡터 공간⁠(vector space)⁠과 선형 사상⁠(linear map)⁠의 범주에서는 직합⁠(direct sum)⁠ A⊕BA\oplus B입니다.

화살표를 모두 뒤집으면 쌍대곱(coproduct)입니다. 두 화살표 A→QA\to Q, B→QB\to Q가 있고, A와 B에서 X로 가는 화살표 쌍은 모두 Q를 거쳐 가는 하나뿐인 화살표 Q→XQ\to X로 정해집니다. 나누어떨어짐에서는 최소공배수⁠(least common multiple)⁠, 부분집합에서는 합집합⁠(union)⁠, 명제에서는 'A 또는 B'입니다. 집합에서는 합집합이 아니라 서로소 합집합 A⊔BA\sqcup B입니다. 겹치는 원소도 '왼쪽에서 온 것'과 '오른쪽에서 온 것'으로 따로 셉니다. 그래야 A에서 X로 가는 함수⁠(function)⁠와 B에서 X로 가는 함수를 아무렇게나 골라도 하나로 합칠 수 있습니다. 겹치는 원소를 한 번만 세면 두 함수가 그 원소에서 다른 값을 줄 때 합칠 수 없습니다. 프로그래밍의 '둘 중 하나' 타입(Either A B)이 바로 이것입니다(대수적 자료형⁠(algebraic data type)⁠). 벡터 공간에서는 직합이 곱이면서 쌍대곱이고, 군에서는 쌍대곱이 곱과 전혀 달라서 ℤ와 ℤ의 쌍대곱은 두 생성원이 서로 교환되지 않는 자유곱입니다.

보편 성질⁠(universal property)⁠로 정의한 대상은 하나뿐인 동형 사상을 빼고는 하나뿐입니다. 가장 간단한 경우로 증명해 봅시다. 모든 대상에서 정확히 하나씩 화살표가 오는 대상을 끝 대상⁠(terminal object)⁠이라 합니다. T와 T′이 둘 다 끝 대상이면 T → T′과 T′ → T가 하나씩 있고, 합성 T → T′ → T는 T에서 T로 가는 화살표입니다. 그런데 T가 끝 대상이므로 T에서 T로 가는 화살표는 하나뿐이고, 항등 화살표⁠(identity arrow)⁠도 그런 화살표이므로 합성은 항등입니다. 반대쪽도 같으니 T와 T′은 동형이고, 그 동형은 하나뿐입니다. 곱도 같습니다. 곱 P와 P′이 있으면 P의 성질로 P′ → P가, P′의 성질로 P → P′이 정해지고, 합성 P → P′ → P는 두 사영과 가환하는 P → P이므로 '정확히 하나'에 따라 항등입니다. 곱이란 사실 'A와 B로 가는 화살표 쌍을 가진 대상'들이 이루는 범주의 끝 대상이기 때문입니다. 그래서 A × B를 {(a, b)}로 만들든 {(b, a)}로 만들든 차이가 없습니다. 무엇으로 만들었는가가 아니라 다른 대상과 어떻게 이어지는가가 대상을 정합니다.

곱이 언제나 있는 것은 아닙니다. 그림의 '나비넥타이' 순서에서 a와 b 아래에는 c와 d가 있지만 둘은 서로 비교할 수 없어, 모든 아래 원소가 거쳐 가는 하나가 없습니다. 곱이 없는 것입니다. 양의 정수⁠(integer)⁠의 나누어떨어짐에는 끝 대상도 없습니다. 모든 수가 나누는 양의 정수는 없으니까요. 끝 대상은 아무것도 곱하지 않은 '빈 곱'입니다. 아무것도 더하지 않은 합이 0이고 아무것도 곱하지 않은 곱이 1이듯, 아무 수도 주지 않았을 때의 최대공약수는 모든 수가 나누는 수여야 합니다. 0을 넣으면 0이 그 자리에 들어가고, 그래서 gcd(0, n) = n이라는 관례가 자연스럽습니다.

곱은 더 일반적인 극한(limit)의 한 예입니다. 대상과 화살표로 된 그림(도식)이 주어지면, 그림의 모든 대상으로 화살표를 보내면서 그림과 가환하는 것들 가운데 '모두가 거쳐 가는 하나'가 극한입니다. 두 함수 f, g: A → B의 극한(동등자⁠, equalizer⁠)은 집합 {x∈A:f(x)=g(x)}\{x\in A : f(x) = g(x)\}, 곧 방정식의 해집합이고, 선형 사상이라면 f − g로 0이 되는 벡터⁠(vector)⁠들의 공간입니다(연립일차방정식⁠(system of linear equations)⁠). f: A → C, g: B → C의 극한(당김)은 {(a,b):f(a)=g(b)}\{(a, b) : f(a) = g(b)\}로, 부분집합의 교집합⁠(intersection)⁠과 역상이 모두 이 모양입니다. 방향을 뒤집은 쌍대극한⁠(colimit)⁠에는 동치관계⁠(equivalence relation)⁠로 나눈 몫집합(쌍대동등자)과, 두 공간을 경계에서 붙이는 일(밀어냄: 원판 두 장을 경계에서 붙이면 구면)이 있습니다. 한 가지 정리가 이것들을 묶습니다. 집합을 첨자로 하는 곱이 모두 있고(첨자가 없는 빈 곱, 곧 끝 대상도 포함) 동등자도 있는 범주에는, 대상과 화살표가 집합을 이루는 모든 그림의 극한⁠(limit)⁠이 있습니다. 그림의 대상 전부의 곱을 만든 뒤, 그림의 화살표들과 맞아떨어지는 부분만 동등자로 골라내면 되기 때문입니다. 집합의 범주는 두 가지를 다 가지므로, 그런 극한이 모두 있습니다.

보편 성질로 생각하면 원소를 다루지 않고도 증명이 됩니다. A×B≅B×AA\times B\cong B\times A는 'B × A도 A와 B로 가는 화살표 쌍을 하나로 모으는 대상이다'라는 한 줄로 끝나고, (A×B)×C≅A×(B×C)(A\times B)\times C\cong A\times(B\times C)도 같습니다. 이 증명은 집합, 최대공약수, 논리의 '그리고', 타입의 순서쌍에서 동시에 성립합니다. 개수도 맞아떨어집니다. 유한 집합에서 ∣A×B∣=∣A∣⋅∣B∣|A\times B| = |A|\cdot|B|, ∣A⊔B∣=∣A∣+∣B∣|A\sqcup B| = |A| + |B|라서 곱과 쌍대곱으로 지은 타입을 '대수적'이라 부릅니다. 한 대상이 보편 성질을 가진다는 것은 '그 대상으로 들어오는(또는 그 대상에서 나가는) 화살표들이 어떤 집합과 자연스럽게 일대일로 대응한다'는 뜻인데, 이렇게 보면 유일성 정리는 요네다 보조정리⁠(Yoneda lemma)⁠의 따름정리가 됩니다.

이어지는 곳. 보편 성질이 모든 대상에 대해 한꺼번에 성립하면 수반 함자⁠(adjoint functor)⁠가 됩니다. 예를 들어 모든 두 대상에 곱이 있으면, 곱을 만드는 일 (A, B) ↦ A × B는 대각 함자⁠(functor)⁠ X ↦ (X, X)의 오른쪽 수반입니다. 곱과 함께 '함수들의 대상'까지 보편 성질로 정의하면 데카르트 닫힌 범주⁠(cartesian closed category)⁠가 됩니다. 자유 모노이드⁠(free monoid)⁠의 '하나뿐인 연장'도 보편 성질입니다. 순서에서의 곱과 쌍대곱은 불 대수⁠(Boolean algebra)⁠의 AND·OR이자 집합의 연산⁠(set operations)⁠의 교집합·합집합이고, 나누어떨어짐에서는 최대공약수와 최소공배수이며, 소인수분해⁠(prime factorization)⁠로 보면 소수⁠(prime number)⁠마다 지수의 최솟값과 최댓값을 고르는 일입니다. 곱과 쌍대곱이 방향만 뒤집은 짝이라는 것은 쌍대성⁠(duality)⁠의 가장 깔끔한 예입니다. 논리의 '그리고'와 '또는'이 곱과 쌍대곱이라는 사실은 커리–하워드 대응⁠(Curry–Howard correspondence)⁠에서 증명과 프로그램을 잇는 고리가 됩니다. 모든 대상으로 가는 화살표가 하나씩뿐인 시작 대상⁠(initial object)⁠은 F-대수들의 범주에서 재귀⁠(recursion)⁠ 타입과 fold를 정의하는 시작 대수가 되고, 동등자는 국소 자료가 전체로 붙는다는 층의 조건을 적는 말이 됩니다. 곱과 쌍대곱의 후보를 집합에서 직접 시험해, 합집합이 아니라 서로소 합집합⁠(disjoint union)⁠이어야 하는 까닭을 보는 그림은 「화살표만으로 본 수학」 2절에 있습니다.

이 개념이 나오는 긴 글

타입 이론과 범주론 증명은 프로그램이다 러셀의 역설을 막으려던 '타입'이 프로그램의 실수를 막는 장치가 되었다. 명제를 타입으로, 증명을 프로그램으로 읽으면 둘이 규칙 하나하나까지 맞아떨어진다. 오늘날 수학자들은 그 사실로 컴퓨터에게 증명을 검사받는다. 범주론 화살표만으로 본 수학 최대공약수와 교집합과 '그리고'는 같은 것이고, 화살표를 뒤집으면 최소공배수와 합집합과 '또는'이 된다. 무엇으로 만들었는지 묻지 않고 어떻게 이어지는지만 보는 언어로, '자연스럽다'는 말의 뜻, 관계만으로 대상을 알아보는 요네다의 생각, 함자로 본 연쇄법칙, 어디에나 있는 수반까지 사이트의 여러 분야를 가로지른다.

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념