F-대수와 fold: 재귀와 귀납의 범주론(Initial algebras and folds)
타입(type)을 짓는 규칙 F(예: 자연수(natural number)는 X ↦ 1 + X, 목록은 X ↦ 1 + A × X)에 대해 '가장 작은 해'가 시작 대수이고, 그 대수에서 다른 모든 대수로 가는 하나뿐인 준동형(homomorphism)이 fold다. 존재는 재귀(recursion)로 정의할 수 있다는 것, 유일성은 수학적 귀납법(mathematical induction)이다.
목록 [3, 1, 4, 1, 5]의 합을 재귀로 적으면 두 줄입니다. 빈 목록의 합은 0이고, 맨 앞 원소(element) a와 나머지 r로 된 목록의 합은 a + (r의 합)입니다. 목록을 '맨 앞 원소를 나머지 앞에 붙이는' 연산 ∷로 적으면 [3, 1, 4, 1, 5] = 3 ∷ (1 ∷ (4 ∷ (1 ∷ (5 ∷ []))))이고, 합을 구하는 일은 이 식에서 ∷를 +로, []를 0으로 바꿔 쓴 것과 같습니다. 3 + (1 + (4 + (1 + (5 + 0)))) = 14. 곱은 ∷를 ×로, []를 1로 바꾸고, 길이는 ∷를 '1 +'로, []를 0으로 바꿉니다. 자연수도 마찬가지입니다. 5는 0에 '다음 수' S를 다섯 번 붙인 S(S(S(S(S(0)))))이고,
바꿔 끼울 것:
이 계산이 늘 같은 모양이라는 것을 범주론(category theory)으로 적으면 이렇습니다. 자연수의 생성자는 '원소 하나(0)'와 '함수(function) 하나(S)'입니다. 이 둘을 한데 묶으면 함수
두 F-대수 사이의 준동형은 구조를 지키는 함수입니다.
그 범주의 시작 대상(initial object), 곧 다른 모든 F-대수로 가는 준동형이 정확히 하나씩 있는 대수를 시작 대수(initial algebra)라 하고
거꾸로 유일성에서 귀납법이 나옵니다. 0을 포함하고 S로 닫힌 부분집합(subset) P ⊆ ℕ가 있다고 합시다. P는 (P, 0, S) 자체로 F-대수입니다. 시작 대수에서 P로 가는 준동형을 따라간 뒤 P를 ℕ에 넣으면 ℕ에서 ℕ으로 가는 준동형이 되는데, 항등 함수도 그런 준동형이므로 유일성에 따라 둘은 같습니다. 그러면 모든 n이 P를 거쳐 가니 P = ℕ입니다. 곧 수학적 귀납법은 시작 대수의 '하나뿐'이 하는 말이고, 재귀로 정의하는 것은 시작 대수의 '있다'가 하는 말입니다. 목록에 대해서도 같은 논증으로 '빈 목록에서 성립하고, r에서 성립하면 a ∷ r에서도 성립하면 모든 목록에서 성립한다'는 구조적 귀납법(structural induction)이 나옵니다.
유일성은 계산에 쓸모 있는 법칙을 공짜로 줍니다. 첫째, 생성자를 생성자 그대로 바꿔 끼운 fold는 항등 함수입니다. 그림에서 '생성자 그대로'를 골라 보세요. 항등 함수도 두 등식을 만족하고, 그런 함수는 하나뿐이기 때문입니다. 둘째, 융합 법칙(fusion law)입니다. 대수 (Y, y₀, t)에서 (Z, z₀, u)로 가는 준동형 k가 있으면
모든 재귀가 곧바로 한 칸짜리 fold인 것은 아닙니다. 피보나치 수
시작 대수에는 놀라운 성질이 하나 더 있습니다. 1968년 요아힘 람벡이 증명한 람벡 보조정리(Lambek's lemma)에 따르면, 시작 대수의 구조 사상
람벡 보조정리(lemma)는 '없다'는 판정에도 쓰입니다. 집합을 멱집합(power set)으로 보내는 함자 P에는 시작 대수가 없습니다. 있다면
개수를 세는 생성함수(generating function)도 람벡의 동형(isomorphism)에서 나옵니다. 이진 나무는 잎(leaf) 하나이거나 마디 하나에 나무 두 그루를 단 것이므로
이 관점은 1970년대에 대수적 명세 연구(조지프 고겐 등, 1977)에서 '시작 대수 의미론'으로 자리 잡았고, 1990년 무렵 그랜트 맬컴, 에릭 메이어, 마르턴 포킹아, 로스 패터슨이 프로그램 변환의 도구로 다듬었습니다. 메이어 등의 1991년 논문 제목 「바나나, 렌즈, 봉투, 가시철사로 하는 함수형 프로그래밍」의 '바나나'가 fold를 적는 괄호입니다. 증명 보조기 Lean과 Rocq(옛 이름 Coq)에서는 귀납적으로 정의한 타입마다 '재귀자(recursor)'가 자동으로 생기는데, 그 타입이 바로 귀납법의 명제입니다. 결과의 타입이 입력에 따라 달라지도록 fold를 넓힌 것이 귀납법이라는 뜻이고, 커리–하워드 대응(Curry–Howard correspondence)으로 읽으면 '재귀로 정의한 프로그램'과 '귀납법으로 한 증명'이 같은 것입니다.
이어지는 곳. 목록과 나무를 합과 곱으로 짓는 방법은 대수적 자료형에서, 시작 대상과 '하나뿐인 화살표'의 뜻은 보편 성질에서 볼 수 있습니다. fold는 재귀를 한 가지 틀로 모으고, 그 틀의 유일성이 수학적 귀납법이며, 한 단계짜리 점화식과 피보나치 수열(Fibonacci sequence)이 그 가장 작은 예입니다. 가장 작은 고정점을 되풀이로 찾는 방법은 영역 이론에서 끝나지 않는 재귀의 뜻을 정할 때 다시 나오고, 멱집합 함자에 시작 대수가 없다는 것은 대각선 논법(diagonal argument)의 또 다른 얼굴입니다. 동형
이 개념이 나오는 긴 글
이 개념을 언급하는 페이지
- 멱집합
… 어떤 집합도 자기 멱집합과 일대일로 짝지어질 수 없으므로, 멱집합을 취하는 함자에는 재귀 타입을 짓는시작 대수가 없습니다.
- 피보나치 수열
… F_n + F_{n+1}) 로 미는 함수를 자연수 위에서 접는 것이어서, 앞의 두 값을 보는 재귀도시작 대수에서 나가는 한 칸짜리 fold로 적힙니다.
- 등비급수
… 이 전개가 뜻을 갖는 까닭은 리스트 타입이 L\cong 1 + A\times L 의 가장 작은 해, 곧시작 대수이기 때문이고, 그 해는 길이 0 이하, 1 이하, 2 이하인 리스트들을 차례로 모아 합쳐 얻어집니다.
- 문맥 자유 문법
… 이진 트리의 쌍'이라는 정의, 곧 타입의 등식 T \cong 1 + T \times T 의 가장 작은 해(시작 대수)이고, 이 등식을 개수의 생성함수 T(x) = 1 + x\,T(x)^2 로 옮겨 풀면 카탈랑 수가 …
- 수학적 귀납법
… 적으면(여기서는 자연수를 0부터 셉니다) 귀납법은 (ℕ, 0, S)가 함자 X\mapsto 1 + X 의시작 대수라는 문장의 '다른 대수로 가는 준동형이 하나뿐'이라는 부분이고, '하나 있다'는 부분이 재귀로 함수를 …
- 점화식
… 점화식 a_{n+1} = f(a_n) 의 해가 처음 값 하나로 정확히 하나 정해진다는 것은 자연수가시작 대수라는 사실을 풀어 쓴 것입니다. 일차 점화식을 벡터와 행렬로 키우고 입력을 더한 h_t = …
- 생성함수
… 수를 지키므로 생성함수가 T(x) = 1 + x\,T(x)^2 을 만족하는데, 그 동형이 어디서 오는지는시작 대수의 람벡 보조정리가 알려 줍니다.
- 카탈랑 수
… 대수적 자료형입니다. 이 타입은 방정식 T\cong 1 + T\times T 의 가장 작은 해, 곧시작 대수이고, 나무 위의 구조적 재귀는 그 대수에서 다른 대수로 가는 하나뿐인 준동형(fold)입니다.
- 재귀
… 정하는 재귀를 fold라 합니다. 이 두 가지를 주면 그런 함수가 꼭 하나 있다는 성질이 리스트 타입을시작 대수로 만듭니다. '있다'는 쪽은 재귀로 함수를 정의할 수 있다는 뜻이고, '하나뿐'이라는 쪽은 ⟦수학적 …
- 고정점
… 나무처럼 자기 자신으로 정의되는 타입이 방정식 X\cong F(X) 의 가장 작은 해로 나오고, 이것이시작 대수입니다. 모든 부분집합에 상한과 하한이 있는 순서(완비 격자)에서는 순서를 지키는 함수마다 가장 작은 …
- 커리–하워드 대응
… 대응은 선형 논리에서, '재귀로 정의한 프로그램'과 '귀납법으로 한 증명'이 같은 것이라는 관점은시작 대수에서 이어집니다.
- 대수적 자료형
… 것이 다형성입니다. 되부르는 타입이 방정식 L\cong 1 + A\times L 의 가장 작은 해, 곧시작 대수이고 그 위의 구조적 재귀가 하나뿐인 fold라는 것은 그 페이지에서, 곱과 합이 두 자리 모두에서 …
- 의존 타입
… 정의한 타입마다 생기는 재귀자가 결과의 타입이 입력에 따라 달라지도록 fold를 넓힌 것이라는 점은시작 대수에서 볼 수 있습니다.
- 증명 보조기
… 호어 논리의 방식을 따르고, Lean과 Rocq가 귀납적으로 정의한 타입마다 자동으로 만드는 재귀자는시작 대수의 fold를 결과의 타입이 입력에 따라 달라지도록 넓힌 것입니다.
- 범주론
… 최대공약수를 새 눈으로 보게 합니다. 이 어휘 위에 더 쌓은 구조로는 재귀와 귀납을 한 틀로 모으는시작 대수, 순서에서의 수반인 갈루아 연결, 나란히 놓기 ⊗를 더한 모노이드 범주, 화살표 모음을 거리나 …
- 모노이드
… 쉬운 모노이드로 옮기는 도구입니다. 문자열을 모노이드 연산으로 접는 자유 모노이드의 '하나뿐인 연장'은시작 대수의 fold가 마침 모노이드 준동형이 되는 경우이고, 원소 대신 대상들을 모노이드처럼 곱하는 범주가 …
- 보편 성질: 곱, 쌍대곱, 극한
… 대상으로 가는 화살표가 하나씩뿐인 시작 대상은 F-대수들의 범주에서 재귀 타입과 fold를 정의하는시작 대수가 되고, 동등자는 국소 자료가 전체로 붙는다는 층의 조건을 적는 말이 됩니다. 곱과 쌍대곱의 후보를 …
- 영역 이론: 스콧과 재귀의 의미
… 함자의 고정점으로 올라갑니다. 자연수나 리스트 같은 재귀적 자료형은 함자의 가장 작은 고정점이고(이것을시작 대수라 합니다), 람베크의 보조정리가 그것이 정말 고정점임을 말해 줍니다. 재귀 함수의 최소 고정점과 재귀 …