자연 변환(Natural transformation)
두 함자(functor) F, G 사이를 잇는, 대상마다 하나씩 정한 화살표들의 모임. 어떤 화살표 f를 먼저 따라가든 나중에 따라가든 결과가 같아야(자연성(naturality) 사각형이 가환해야) 한다. '기저를 고르지 않고 정의된다', '값을 보지 않고 위치만 본다'는 말의 정확한 뜻이다.
목록의 첫 원소(element)를 꺼내는 함수(function) head를 생각합시다. 빈 목록에는 첫 원소가 없으므로, '값이 하나 있다(Just x)' 또는 '없다(Nothing)'를 돌려주게 합니다. 이 함수는 정수(integer) 목록에도, 문자열 목록에도, 어떤 종류의 목록에도 똑같은 규칙으로 작동합니다. 이제 두 순서를 견줘 봅니다. [3, 1, 4]의 모든 원소에 f(x) = x + 1을 적용한 뒤 첫 원소를 꺼내면 [4, 2, 5]에서 Just 4를 얻고, 먼저 첫 원소 Just 3을 꺼낸 뒤 그 안의 값에 f를 적용해도 Just 4를 얻습니다. 어느 쪽을 먼저 해도 같다는 것, 이것이 자연성입니다.
꺼내는 방법 η:
정확히 말하면 이렇습니다. 두 함자
를 만족하는 것입니다. 위 그림의 네모가 바로 이 식이고, 이것을 자연성 사각형이라 부릅니다. 위의 예에서 F는 목록 함자, G는 Maybe 함자,
자연성이 무엇을 막는지 그림에서 직접 볼 수 있습니다. '가장 큰 값'을 꺼내는 η는 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**로 가는 동형
행렬식(determinant)도 자연 변환입니다. 가환환 R마다 R의 원소로 된 n×n 행렬(matrix)들의 곱셈 모노이드(monoid)
두 범주 𝒞, 𝒟 사이의 함자들을 대상으로, 자연 변환들을 화살표로 두면 다시 범주가 됩니다(함자 범주, 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절에 있습니다.
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 다형성과 시스템 F
… 함수 f를 map f로 보내는 함자이고, 공짜 정리는 다형 함수 r이 함자 List에서 List로 가는자연 변환이라는 말과 같습니다. 정렬처럼 원소를 비교하는 함수는 타입이 …
- 범주론
… 두 사람은 대수적 위상수학을 연구하다가 '자연스러운 동형'이라는 말에 정확한 뜻을 주려 했고, 그러려면자연 변환을, 그러려면 함자를, 그러려면 범주를 정의해야 했습니다. 매클레인의 회고에 따르면 '범주'는 …
- 함자
… 합성하는 연산으로 map하면 함자입니다. 이어지는 곳. 같은 두 범주 사이의 두 함자를 잇는 사상이자연 변환이고, 목록의 첫 원소를 꺼내는 함수가 그 예입니다. 어떤 함자가 한 대상의 화살표들과 같은 모양인지 묻는 …
- 수반 함자
… C}(X,\,RY) 를 만족하고 이 일대일 대응이 X와 Y에 대해 자연스러우면(자연 변환) L을 R의 왼쪽 수반, R을 L의 오른쪽 수반이라 하고 L\dashv R 로 적습니다. Hom(X, …
- 요네다 보조정리
… F가 𝒞에서 집합의 범주로 가는, 방향이 뒤집히는 아무 함자이면, Hom(−, A)에서 F로 가는자연 변환은 F(A) 의 원소와 정확히 하나씩 대응합니다. …
- 모나드
… 그림의 위 줄과 아래 줄이 그 두 동작입니다. η와 μ는 모든 타입 A에 대해 똑같은 규칙으로 작동하는자연 변환이어야 합니다. (T, η, μ)가 모나드 (monad)이려면 법칙 세 개가 필요합니다. 풀칠로 적으면 …
- 모노이드 범주와 끈 그림
… C) 와 단위를 떼는 동형 I\otimes A\cong A\cong A\otimes I 가자연 변환으로 주어져, 네 대상의 괄호를 바꾸는 두 길이 같다는 오각형 등식과 단위에 관한 삼각형 등식을 만족하는 …
- 토포스: 집합을 닮은 우주
… 화살표는 두 시점의 함수 쌍으로서 '오늘 옮긴 뒤 내일로 가든, 내일로 간 뒤 옮기든 같은' 것입니다(자연 변환의 사각형). 이 범주는 순서 {오늘 ≤ 내일}에서 집합의 범주로 가는 함자들의 범주입니다. 부분 …