람다 계산(Lambda calculus)
함수(function)를 만들고(λx.M) 적용하는(M N) 두 가지만으로 모든 계산을 표현하는 처치의 체계. 계산은 인자를 함수 몸통에 대입하는 β-축약(β-reduction) 하나뿐이다.
1930년대 초 미국 논리학자 알론조 처치는 함수를 만드는 것과 적용하는 것 두 가지만으로 이루어진 체계를 내놓았습니다.
수는 '몇 번 되풀이하는가'로 나타냅니다. 처치 수(Church numeral) n은 함수 f를 받아 x에 n번 적용하는 함수입니다. n =
줄일 식은
참과 거짓도 함수입니다. TRUE = λa.λb.a는 둘 중 앞의 것을, FALSE = λa.λb.b는 뒤의 것을 고릅니다. 그러면 AND = λp.λq.p q p가 됩니다. p가 참이면 q를 보고, 거짓이면 곧바로 거짓입니다. 불 대수(Boolean algebra) 전체가 함수만으로 지어지는 셈입니다. 반면 Ω = (λx.x x)(λx.x x)는 한 번 줄이면 자기 자신으로 돌아와 끝나지 않습니다. 이렇게 더 줄일 수 없는 모양(정규형, normal form)이 없는 항도 있고, 주어진 항이 정규형에 닿는지 판정하는 일반적인 방법은 없습니다. 처치는 1936년 이것으로 정지 문제(halting problem)와 같은 종류의 불가능성을 보였습니다. 처치와 그의 제자 J. 바클리 로서가 증명한 처치–로서 정리(1936)에 따르면, 어디부터 줄이든 정규형에 닿기만 하면 그 결과는 (묶인 변수의 이름만 다른 것을 같게 보면) 언제나 같습니다. 줄이는 순서가 결과를 바꾸지는 못하지만, 닿느냐 마느냐는 바꿀 수 있습니다. 가장 바깥·왼쪽부터 줄이는 정규 순서는 정규형이 있으면 반드시 찾아낸다는 것이 알려져 있습니다(표준화(standardization) 정리).
이름 없는 함수로는 되부름(재귀, recursion)을 어떻게 할까요? 함수 g에 넣었을 때 그대로 돌아오는 값, 곧
이어지는 곳. 1936–37년 튜링은 람다로 정의할 수 있는 함수와 튜링 기계(Turing machine)로 계산할 수 있는 함수가 정확히 같음을 보였고, 이것이 처치–튜링 논제(Church–Turing thesis)의 기둥이 되었습니다. 계산을 함수의 적용과 조합으로 적는 프로그래밍 언어를 함수형 언어라 하는데, 1958년 존 매카시가 만든 Lisp는 람다 표기를 빌려 왔고, 오늘날의 Haskell 같은 함수형 언어(functional programming language)는 람다 계산을 핵심으로 삼습니다. 파이썬의 lambda처럼 여러 언어가 이름 없는 함수를 가리키는 말로 이 이름을 물려받았습니다. 타입(type) 없는 람다 계산에는 오랫동안 수학적 모형이 없었습니다. 모든 항이 함수이면서 인자라서 값의 집합(set) D가 D에서 D로 가는 함수 전체와 같아야 하는데, 원소(element)가 둘 이상이면 대각선 논법(diagonal argument)이 그것을 막기 때문입니다. 1969년 데이나 스콧은 연속 함수만 모으면 된다는 것을 보여 이 문제를 풀었고, 여기서 영역 이론(domain theory)이 시작되었습니다. 변수마다 '수', '참·거짓' 같은 종류(타입)를 붙인 단순 타입 람다 계산(simply typed lambda calculus)에서는 모든 계산이 반드시 끝나는 대신 Y 조합자(Y combinator) 같은 끝없는 되부름을 적을 수 없고, 타입이 명제, 프로그램이 그 명제의 증명이 되는 대응이 드러납니다. 미국 논리학자 해스켈 커리와 윌리엄 하워드의 이름을 따 커리–하워드 대응(Curry–Howard correspondence)이라 합니다. 예를 들어 A를 받아 B를 돌려주는 함수의 타입 A → B는 명제 'A이면 B'에 대응하고, 그 함수에 A 타입의 값을 넣어 B를 얻는 일은 'A'와 'A이면 B'에서 'B'를 끌어내는 추론에 대응합니다. 이 대응은 Coq(Rocq)나 Lean처럼 컴퓨터로 증명을 검사하는 도구(증명 보조기, proof assistant)의 바탕이 되었습니다. 그런 도구가 다루는 형식 증명으로도 넘을 수 없는 한계를 말해 주는 것이 괴델의 불완전성 정리(Gödel's incompleteness theorems)입니다.
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 함수
… 구조와 그 사이의 대응에 쓰는 것이 범주론입니다. 1930년대 미국의 논리학자 알론조 처치가 만든람다 계산은 함수를 만드는 일과 함수에 값을 넣는 일, 이 두 가지만으로 튜링 기계가 할 수 있는 모든 계산을 …
- 칸토어의 대각선 논법
… 범주론의 정리 하나로 정리했습니다. 데이나 스콧은 함수가 자기 자신을 인자로 받을 수 있는 계산 체계(람다 계산)에 수학적 뜻을 붙이려다, '원소가 둘 이상인 D에서 D로 가는 함수 전체는 D보다 많다'는 이 논법에 …
- 불 대수
… 하면 유한 오토마톤이 되고, 끝없는 테이프를 붙이면 튜링 기계가 됩니다. 함수만으로 계산을 적는람다 계산에서는 참과 거짓조차 '둘 중 하나를 고르는 함수'로 정의하고, 그 위에 불 대수 전체를 다시 짓습니다. …
- 러셀의 역설
… 자기 코드를 입력받으면 반대로 행동하는 프로그램이 같은 역할을 합니다. 미국 논리학자 알론조 처치가람다 계산을 담으려던 초기 논리 체계도 비슷한 역설로 모순임이 드러났습니다. 1969년 로베어는 칸토어, …
- 튜링 기계
… 기계의 힘에 따라 나뉘는 이 층들이 촘스키 위계입니다. 같은 1936년 알론조 처치는 전혀 다른람다 계산으로 같은 개념에 이르렀고, 둘이 같다는 사실이 처치–튜링 논제의 근거가 되었습니다. 튜링은 이 …
- 정지 문제
… '자기 자신을 원소로 갖지 않는 집합'과도 같은 모양입니다. 비슷한 시기에 미국 논리학자 알론조 처치도람다 계산으로 판정할 수 없는 문제가 있음을 보였습니다. 정지 문제에서 곧바로 여러 결과가 나옵니다. 미국 논리학자 …
- 처치–튜링 논제
… 중반 여러 사람이 이것을 각자 다른 방식으로 엄밀하게 정의했습니다. 미국 논리학자 알론조 처치의람다 계산이 있었고, 괴델과 프랑스의 자크 에르브랑, 미국의 스티븐 클리니가 다듬은 재귀 함수가 있었습니다. …
- 촘스키 위계
… P 대 NP 문제입니다. 가장 바깥 층의 기계인 튜링 기계와 같은 힘을 기계 대신 함수로 적은 것이람다 계산입니다.
- 알고리즘
… 기계⟧로 절차를 정의했습니다. 미국의 논리학자 처치는 함수를 만들고 적용하는 규칙만으로 계산을 적는람다 계산으로 정의했습니다. 둘은 생김새가 전혀 다르지만 계산할 수 있는 것이 똑같았습니다. 이것이 '기계적으로 …
- 재귀
… 분할 정복입니다. 문장 안에 문장이 들어가는 언어의 구조는 문맥 자유 문법의 재귀 규칙으로 적고,람다 계산에서는 함수에 이름을 붙여 자기 자신을 부를 수 없는데도 재귀를 만들 수 있습니다. 고정점 결합자라는 …
- 수학 기초론 논쟁
… 판정하는 방법이 있는가(결정 문제)에 '없다'고 답하면서, 계산이란 무엇인지를 정의했습니다(튜링 기계,람다 계산, 처치–튜링 논제). 같은 해 독일의 게르하르트 겐첸은 유한한 방법보다 조금 강한 초한 귀납법을 …
- 고정점
… 문장(불완전성 정리)이 '증명할 수 없다'는 성질의 고정점을 만드는 대각선 보조정리로 얻어지고,람다 계산의 Y 조합자는 어떤 함수에든 고정점을 만들어 주어 재귀를 가능하게 합니다. 변수에 타입을 붙인 ⟦단순 …
- 인공지능
… 화이트헤드의 『수학 원리』 2장에 나오는 정리 52개 가운데 38개를 증명했습니다. 1958년 매카시는람다 계산의 표기를 빌려 기호를 다루는 언어 LISP를 만들었습니다. 게임은 가능한 수를 나무 모양으로 펼쳐 따지는 …
- 타입 이론
… 램지 등이 이것을 단순 유형 이론으로 다듬었습니다. 1940년 처치는 단순 유형 이론을 자신의람다 계산위에 다시 세웠습니다. 모든 변수에 타입을 붙인 이 체계가 단순 타입 람다 계산입니다. 그 뒤 타입 …
- 단순 타입 람다 계산
람다 계산에서는 아무 항에나 아무 항을 적용할 수 있습니다. 그래서 \Omega = (\lambda …
- 타입 추론: 힌들리–밀너
… 나오는지 검사하고, 나오면 실패합니다. 이것은 제멋대로 정한 규칙이 아닙니다. 자기 자신에게 적용하기는람다 계산에서 끝나지 않는 계산 Ω = (λx.x x)(λx.x x)와, 되부름을 만드는 Y 조합자의 씨앗입니다. …
- 다형성과 시스템 F
… 쓸 수 있습니다. 자연수의 타입은 \forall X.\,(X\to X)\to X\to X 이고, 그 원소가람다 계산의 처치 수입니다. 그런데도 지라르는 시스템 F의 모든 항이 계산을 끝낸다(강정규화)는 것을 증명했고, …
- 증명 보조기
… 기초론 논쟁⟧), '증명은 기계가 확인할 수 있는 기호열'이라는 그의 생각은 증명 보조기로 살아 있습니다.람다 계산의 항이 증명이 되고, 그 항을 검사하는 일이 타입 이론의 규칙을 따르는 일입니다. 반복문 옆에 …
- 범주론
… 범주를 '여러 대상을 가진 모노이드'로 보게 해 줍니다. 커링이 되는 범주인 데카르트 닫힌 범주는람다 계산과 커리–하워드 대응을 한 그림에 모읍니다. 같음을 동형으로 바꿔 읽는 태도는 ⟦호모토피 타입 …
- 수반 함자
… 과정은 프로그래밍의 목록·상태 모나드가 어디서 오는지 설명하고, 커링의 수반은 데카르트 닫힌 범주와람다 계산을 잇습니다. ∃와 ∀가 대입의 수반이라는 사실은 의존 타입에서 Σ 타입과 Π 타입으로 다시 나타나고, …
- 모나드
… 실험을 그대로 다시 돌릴 수 있게 해 줍니다. 순수한 계산과 효과를 타입으로 나누는 설계는 타입 이론과람다 계산에서, 모나드를 쓰는 코드의 타입을 기계가 알아내는 일은 타입 추론에서 이어집니다. 순서에서 모나드는 …
- 데카르트 닫힌 범주
… 커링 λf, 함수 적용은 \mathrm{ev}\circ\langle f, g\rangle 입니다.람다 계산의 β-축약 (\lambda x.\,M)\,N\to M[x:=N] 은 등식 …
- 영역 이론: 스콧과 재귀의 의미
… 않음을 알아내는' 함수는 정보의 순서를 거스르므로 이 세계에 없습니다. 스콧이 이 이론을 만든 동기는람다 계산이었습니다. 람다 계산은 함수를 만들고 함수에 인자를 넣는 규칙만으로 계산을 적는 언어이고, 그 식 …