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

자연 변환(Natural transformation)

두 함자⁠(functor)⁠ F, G 사이를 잇는, 대상마다 하나씩 정한 화살표들의 모임. 어떤 화살표 f를 먼저 따라가든 나중에 따라가든 결과가 같아야(자연성⁠(naturality)⁠ 사각형이 가환해야) 한다. '기저를 고르지 않고 정의된다', '값을 보지 않고 위치만 본다'는 말의 정확한 뜻이다.

ηB∘F(f)=G(f)∘ηA\eta_B\circ F(f) = G(f)\circ\eta_A
먼저 보면 좋은 개념함자

목록의 첫 원소⁠(element)⁠를 꺼내는 함수⁠(function)⁠ head를 생각합시다. 빈 목록에는 첫 원소가 없으므로, '값이 하나 있다(Just x)' 또는 '없다(Nothing)'를 돌려주게 합니다. 이 함수는 정수⁠(integer)⁠ 목록에도, 문자열 목록에도, 어떤 종류의 목록에도 똑같은 규칙으로 작동합니다. 이제 두 순서를 견줘 봅니다. [3, 1, 4]의 모든 원소에 f(x) = x + 1을 적용한 뒤 첫 원소를 꺼내면 [4, 2, 5]에서 Just 4를 얻고, 먼저 첫 원소 Just 3을 꺼낸 뒤 그 안의 값에 f를 적용해도 Just 4를 얻습니다. 어느 쪽을 먼저 해도 같다는 것, 이것이 자연성입니다.

노란 길은 오른쪽 먼저(map f 다음 η), 분홍 길은 아래 먼저(η 다음 map f)입니다. 오른쪽 아래 점이 초록이면 두 길이 같은 곳에 닿은 것입니다.

꺼내는 방법 η: , 함수 f: , 목록: .

정확히 말하면 이렇습니다. 두 함자 F,G:C→DF, G: \mathcal C\to\mathcal D가 있을 때, F에서 G로 가는 자연 변환 η:F⇒G\eta: F\Rightarrow G는 𝒞의 대상 A마다 하나씩 정한 화살표 ηA:F(A)→G(A)\eta_A: F(A)\to G(A)들의 모임으로, 모든 화살표 f:A→Bf: A\to B에 대해

ηB∘F(f)=G(f)∘ηA\eta_B\circ F(f) = G(f)\circ\eta_A

를 만족하는 것입니다. 위 그림의 네모가 바로 이 식이고, 이것을 자연성 사각형이라 부릅니다. 위의 예에서 F는 목록 함자, G는 Maybe 함자, ηA\eta_A는 A의 원소로 된 목록에서 첫 원소를 꺼내는 함수입니다. ηA\eta_A를 '성분'이라 하는데, 성분들이 제각각이 아니라 한 규칙에서 나와야 한다는 것을 사각형 하나로 요구하는 셈입니다.

자연성이 무엇을 막는지 그림에서 직접 볼 수 있습니다. '가장 큰 값'을 꺼내는 η는 f(x) = −x에서 어긋납니다. [3, 1, 4]를 먼저 부호를 바꾸면 [−3, −1, −4]의 최댓값은 −1인데, 먼저 최댓값 4를 꺼내 부호를 바꾸면 −4입니다. '처음 나오는 짝수'도 f(x) = x + 1에서 어긋납니다. 이 둘은 원소의 값을 보고 무엇을 꺼낼지 정하는데, 자연성은 그것을 금지합니다. 실제로 집합⁠(set)⁠의 범주⁠(category)⁠ 위의 목록 함자에서 Maybe 함자로 가는 자연 변환은 정확히 '길이 n마다, 아무것도 꺼내지 않거나 위치 i(0 ≤ i < n) 하나를 고르는 규칙'과 하나씩 대응합니다. 증명은 짧습니다. 길이 n인 목록 xs = [x₀, …, xₙ₋₁]은 위치의 목록 [0, 1, …, n − 1]에 함수 i ↦ xᵢ를 map한 것이므로, 자연성에 따라 η(xs)는 η가 목록 [0, 1, …, n − 1]에서 고른 위치의 원소일 수밖에 없습니다. 첫 원소, 마지막 원소, '길이가 짝수일 때만 첫 원소'는 모두 이 모양이라 어떤 f, 어떤 목록에서도 사각형이 가환합니다. 그림의 '20가지 시험'은 참고일 뿐이고, 가환한다는 보장은 이 증명에서 옵니다.

프로그래밍 언어에서는 이것이 저절로 보장되기도 합니다. 모든 타입⁠(type)⁠ a에 대해 List a → Maybe a 타입을 가진 함수는 a가 무엇인지 모르므로 원소의 값을 비교하거나 계산할 수 없고, 할 수 있는 일은 위치를 고르는 것뿐입니다. 그래서 (끝나지 않는 계산이나 예외 같은 것을 빼면) 그런 함수는 모두 자연 변환입니다. 1983년 존 레이놀즈가 정식화한 매개변수성(parametricity)과, 이것으로 타입만 보고 등식을 얻어 내는 필립 와들러의 1989년 논문 「공짜 정리」(Theorems for free!)가 이 이야기입니다(다형성⁠, polymorphism⁠). 앞의 '가장 큰 값'은 원소끼리 비교할 수 있어야 하므로 List a → Maybe a 타입으로는 적을 수 없습니다.

수학에서 '자연스럽다'는 말은 원래 이런 뜻으로 쓰였습니다. 유한 차원 실수⁠(real number)⁠ 벡터⁠(vector)⁠ 공간 V와 그 쌍대 공간⁠(dual space)⁠ V*(V에서 실수로 가는 선형 함수들의 공간)는 차원이 같아 동형⁠(isomorphism)⁠이지만, 동형 사상을 적으려면 기저를 골라야 합니다. 반면 V에서 이중 쌍대⁠(double dual)⁠ V**로 가는 동형 v↦(φ↦φ(v))v\mapsto(\varphi\mapsto\varphi(v))는 아무것도 고르지 않고 적힙니다. 1945년 에일렌베르크와 매클레인은 이 차이를 정확히 말하려고 자연 변환을 정의했습니다. V → V**는 모든 선형 사상⁠(linear map)⁠과 가환하는 자연 변환입니다. V → V*는 그럴 수 없습니다. V ↦ V*는 화살표의 방향을 뒤집는 반변 함자라 애초에 자연 변환의 틀에 들어오지 않고, 가역 선형 사상에 대해서만 가환하기를 요구해도 동형은 나오지 않습니다. 가역 사상 f는 쌍대 공간에서 역사상을 거쳐 φ↦φ∘f−1\varphi\mapsto\varphi\circ f^{-1}로 옮겨지는데, 1차원 공간에서 모든 것을 2배 늘이는 f를 생각해 봅시다. η(2v)는 선형성 때문에 2η(v)이면서 자연성 때문에 ½η(v)여야 합니다. 그러면 η(v) = 0이니 η는 동형일 수 없습니다.

행렬식⁠(determinant)⁠도 자연 변환입니다. 가환환 R마다 R의 원소로 된 n×n 행렬⁠(matrix)⁠들의 곱셈 모노이드⁠(monoid)⁠ Mn(R)M_n(R)과 R의 곱셈 모노이드가 있고, 둘 다 환 준동형⁠(homomorphism)⁠을 모노이드 준동형으로 보내는 함자입니다. det⁡R:Mn(R)→R\det_R: M_n(R)\to R의 자연성은 '환을 바꾼 뒤 행렬식을 구하든, 행렬식을 구한 뒤 환을 바꾸든 같다'는 뜻입니다. 정수 행렬 (3514)\begin{pmatrix}3&5\\1&4\end{pmatrix}의 행렬식은 7입니다. 성분을 5로 나눈 나머지⁠(remainder)⁠로 먼저 바꾸면 (3014)\begin{pmatrix}3&0\\1&4\end{pmatrix}이 되고 그 행렬식 12를 5로 나눈 나머지는 2인데, 7을 5로 나눈 나머지도 2입니다. 행렬식은 어느 환에서나 성분들의 같은 다항식⁠(polynomial)⁠이고, 환 준동형은 덧셈과 곱셈을 지키기 때문입니다. 큰 정수 행렬의 행렬식을 여러 소수⁠(prime number)⁠로 나눈 나머지에서 따로 계산한 뒤 맞춰 보는 방법이 이 성질에 기댑니다. 가역 행렬로 좁히면 같은 행렬식이 GLn(R)→R×GL_n(R)\to R^\times라는 군 사이의 자연 변환이 됩니다.

두 범주 𝒞, 𝒟 사이의 함자들을 대상으로, 자연 변환들을 화살표로 두면 다시 범주가 됩니다(함자 범주⁠, functor category⁠). 성분끼리 합성하면 되기 때문입니다. 성분이 모두 동형인 자연 변환을 자연 동형⁠(natural isomorphism)⁠이라 하고, 함자 사이의 '같음'은 보통 이것입니다. 작은 예로, 군을 대상이 하나인 범주로 보면 두 군 준동형 φ, ψ: G → H 사이의 자연 변환은 모든 g에 대해 h·φ(g) = ψ(g)·h를 만족하는 H의 원소 h 하나입니다. 두 준동형이 켤레로 이어진다는 뜻입니다. 매클레인은 뒤에 '범주는 함자를 정의하려고, 함자는 자연 변환을 정의하려고 정의했다'고 적었습니다.

이어지는 곳. 자연 변환은 요네다 보조정리⁠(Yoneda lemma)⁠의 주인공입니다. '한 대상의 화살표들에서 나가는 자연 변환은 원소 하나로 정해진다'는 그 정리는, 위의 증명에서 위치의 목록 하나만 보면 되었던 것과 같은 모양입니다. 수반 함자⁠(adjoint functor)⁠의 단위와 쌍대 단위⁠(counit)⁠, 모나드⁠(monad)⁠의 return과 join이 모두 자연 변환이고, 모나드 법칙은 자연 변환들 사이의 등식입니다. 자연성과 매개변수성의 관계는 다형성과 타입 이론⁠(type theory)⁠에서 이어집니다. 행렬식을 나머지로 계산해 맞춰 보는 방법은 중국인의 나머지 정리⁠(Chinese remainder theorem)⁠로 완성되고, 기저를 고르지 않는 정의가 왜 좋은지는 선형변환⁠(linear transformation)⁠과 행렬을 견주어 보면 드러납니다. 모든 것의 출발점인 범주와 함자의 정의는 범주론⁠(category theory)⁠에 있습니다. 함자들을 대상으로, 자연 변환을 화살표로 삼으면 다시 범주가 되는데, '오늘'과 '내일' 두 시점에 걸쳐 변하는 집합들의 범주가 그런 예이고 이 세계는 진릿값⁠(truth value)⁠이 셋인 토포스⁠(topos)⁠입니다. 내적⁠(dot product)⁠으로 짝짓는 V ≅ V*가 회전⁠(rotation)⁠과 뒤집기에 대해서만 자연스럽다는 것을 줄무늬로 확인하는 그림은 「화살표만으로 본 수학」 3절에 있습니다.

이 개념이 나오는 긴 글

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

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념