간단히 입력된 람다 미적분

Simply typed lambda calculus

람다 미적분 ( → 형식 이론한 형태인 람다 미적분}})은 함수형태를 구축하는 형식 생성자(→[\displaystystytype \to 만 있는 형식 해석이다. 그것은 형식화된 람다 미적분학의 표준적이고 간단한 예다. 단순 타이핑된 람다 미적분은 원래 알론조교회가 1940년 미타입 람다 미적분의 역설적인 사용을 피하기 위한 시도로 도입되었으며, 바람직하고 흥미로운 특성을 많이 보여준다.

단순형(simple type)이라는 용어는 단순히 입력된 람다 미적분(: 제품, 합금 또는 자연수(System T) 또는 심지어 전체 재귀(PCF와 같은)의 확장을 가리키는 데에도 사용된다. 이와는 대조적으로, 다형성형(시스템 F와 같은)이나 종속형(논리적 프레임워크와 같은)을 도입하는 시스템은 단순히 타이핑된 것으로 간주되지 않는다. 완전한 재귀성을 제외한 전자는 그러한 구조교회 인코딩은 오직 적절한 유형 변수만을 사용하여 할 수 있지만, 다형성과 의존성은 할 수 없기 때문에 여전히 단순하다고 간주된다.

구문

이 기사에서는 을(를) 사용하여 유형을 넘나드는 범위를 지정하십시오. Informally, the function type refers to the type of functions that, given an input of type , produce an output of type . By convention, associates to the right: we read (를 → ( ) {\

유형을 정의하기 위해 B 기본 유형 집합을 수정하십시오 이를 원자형 또는 유형 상수라고도 한다. 이렇게 고정하면, 타입의 구문은 다음과 같다.

: T w e B .

For example, , generates an infinite set of types starting with

우리는 또한 기본 유형에 대한 용어 상수 집합을 고정한다. 예를 들어, 기본 유형을 가정해 보면 nat, 그리고 상수라는 용어는 자연수가 될 수 있다. 원래의 발표에서 Church는 "제안 유형"의 경우 "개인의 유형"의 경우 { 의 두 가지 기본 유형만 사용했다. 형식에는 용어 상수가 없는 반면 형식에는 하나의 용어 상수가 있다. 대개 하나의 기본 유형(일반적으로 만 있는 미적분학을 고려하는 경우가 많다.

단순 타이핑된 람다 미적분학의 구문은 본질적으로 람다 미적분 그 자체의 구문이다. x(가) 유형임을 나타내기 위해 x : displaystystyle \을 쓴다 BNF에서 구문은 다음과 같다.

서 c (는) 용어 상수다.

즉, 가변 참조, 추상화, 적용상수. 바인딩 x} 안에 있으면 변수 참조 x {\displaystyle x가) 바인딩되며 바인딩되지 않은 변수가 없으면 항이 닫힌다

이를 미유형 람다 미적분학의 구문과 비교해 보십시오.

우리는 타이핑된 람다 미적분학에서 모든 함수(추상)가 인수의 유형을 지정해야 한다는 것을 안다.

타이핑 규칙

주어진 유형의 잘 타이핑된 람다 항 집합을 정의하기 위해 항과 유형 간의 타이핑 관계를 정의한다. 먼저, 타이핑 가정의 집합인 , , …를) 타이핑 컨텍스트타이핑 환경을 소개한다. 타이핑 가정에는 가 있다: x }, 즉x displaystyle x}이 {\

The typing relation indicates that is a term of type in context . In this case is said to be well-typed (having type )타이핑 관계의 예를 타이핑 판정이라고 한다. 타이핑 판단의 타당성은 타이핑 규칙을 사용하여 구성된 타이핑 파생(라인 위의 전제에서는 라인 아래의 결론을 도출할 수 있음)을 제공함으로써 나타난다. 단순 형식 람다 미적분학에서는 다음과 같은 규칙을 사용한다.

: x x : x1) 2)
3) (4)

말로 하자면

  1. 컨텍스트에 유형이 sigma }인 x {\ x}이(가) type 인 것으로 알고 있다
  2. 항 상수는 적절한 기본 유형을 가지고 있다.
  3. 유형 (가) 있는 특정 컨텍스트에서 , : e x.(는) {\\ \tau
  4. If, in a certain context, has type , and has type , then has type .

닫힌 용어, 빈 문맥에서 타이핑할 수 있는 용어의 예는 다음과 같다.

  • 모든 유형 에 대해 x: : x\to 식별 함수/I-combinator),
  • For types , a term (the K-combinator), and
  • For types , a term \tauto \S 콤비네이터).

이것들은 결합 논리의 기본 결합자의 활자화된 람다 미적분 표현이다.

Each type is assigned an order, a number . For base types, ; for function types, . 즉, 활자의 순서는 가장 좌뇌가 많은 화살표의 깊이를 측정한다. 따라서 다음과 같다.

의미론

내적 해석 대 외적 해석

대체로 간단히 타이핑된 람다 미적분학에 의미를 부여하는 방법에는 두 가지가 있는데, 보다 일반적으로 타이핑된 언어, 때로는 내적인 언어 대 외적인 언어, 또는 교회식 언어 대 교회식 언어라고 한다. 카레 스타일.[1] 내적/교회 스타일의 의미론에서는 올바른 형식의 용어에 의미를 부여할 뿐, 더 정확히 말하면 타이핑 파생어에 의미를 직접 할당한다. 이는 형식 주석에만 따라 다른 용어들이 그럼에도 불구하고 다른 의미를 부여받을 수 있다는 효과를 가지고 있다. 예를 들어 ID 용어 : n x정수 및 ID 용어 x에 대한 . x 술집에 있는 ~은(는) 다른 의미일 수 있다. (일반적으로 의도된 해석은 정수의 ID 함수와 부울 값의 ID 함수를 의미한다.) 이와는 대조적으로, 외음/커리 스타일의 의미론들은 형식에 구애받지 않는 언어로 해석될 수 있기 때문에 타이핑에 관계 없이 용어에 의미를 부여한다. 이 보기에서 : . x x : . \ \ x(는) 동일한 의미(즉, λ . \ \과(와) 동일함).

내적 의미론과 외적 의미론의 구별은 때때로 람다 추상화에 대한 주석의 유무와 관련이 있지만, 엄밀히 말하면 이 용법은 부정확하다. 문맥(즉, 유형 추론을 통해)에서 유형을 추론할 수 있을 때 불통된 용어에 대해 교회식 의미를 부여할 수 있기 때문에 유형(즉, 유형 삭제를 통해)을 무시하는 것만으로 주석된 용어에 커리식 의미론을 정의할 수 있다. 본질적 접근법과 외적 접근법의 본질적 차이는 단지 타이핑 규칙을 언어를 정의하는 것으로 보는지 아니면 보다 원시적인 기초 언어의 속성을 검증하는 형식주의로 보는지에 있다. 아래에서 논의되는 다른 의미 해석의 대부분은 Church 또는 Curry 관점을 통해 볼 수 있다.

등가이론

단순 타이핑된 람다 미적분학은 β--등가성의 등가 이론을 가지고 있지만, 형식 제한에 따른다. 베타 감소 방정식

holds in context whenever and , while the equation for eta reduction

γ : t에서 \ \ } 및 가) 무료로 표시되지 않음

운영 의미론

마찬가지로 단순 타이핑된 람다 미적분의 운영 의미도 이름별, 호별 통화 또는 기타 평가 전략을 사용하여 미타입 람다 미적분학에 대해 수정할 수 있다. 모든 타이핑된 언어의 경우, 형식 안전은 이러한 모든 평가 전략의 기본 속성이다. 또한 아래에 기술강력한 표준화 특성은 어떤 평가 전략도 단순히 입력된 모든 조건에 의해 종료된다는 것을 의미한다.

범주형 의미론

단순 타이핑된 람다 미적분(β { - 동등성)은 람베크가 처음 관찰한 바와 같이 카르테시안 폐쇄 범주(CCC)의 내부 언어다. 어떤 특정한 CCC를 감안한다면, 해당 람다 미적분학의 기본 타입은 물체일 뿐이고, 용어는 형태론이다. 반대로, 간단히 타이핑된 람다 미적분학은 CCC에게 그 대상이 유형이고, 형태론은 용어의 동등성 등급이다.

서신을 명확히 하기 위해 일반적으로 위에 데카르트 제품의 형식 생성자를 추가한다. 데카르트 제품의 범주를 보존하기 위해 페어링, 투영단위 용어에 대한 유형 규칙을 추가한다. Given two terms and , the term has type . Likewise, if one has a term , then there are terms and where the correspond to the projections of the Cartesian product. 1타입의 단위 용어는 () 로 쓰고 'nil'로 발음하는 것이 최종 목적어다. 평정론도 마찬가지로 확장되어 있어, 한 사람이 한 가지 생각을 가지고 있다.

이 마지막은 "t가 타입 1을 가지고 있다면, 그러면 nil로 감소한다"로 읽힌다.

그런 다음 유형을 개체로 취함으로써 위의 항목을 범주로 바꿀 수 있다. The morphisms are equivalence classes of pairs where x is a variable (of type ) and t is a term (of type ), having no free variables in it, ex(선택적으로) x에 대한 cept. 평소와 같이 curreringapplication을 통해 폐쇄를 얻는다.

좀 더 정확히 말하면, 카르트 폐쇄 범주의 범주와 단순 형식 람다 이론의 범주 사이에는 functors가 존재한다.

선형형 시스템을 사용하여 닫힌 대칭 단면형 범주로 이 사례를 확장하는 것이 일반적이다. 그 이유는 CCC가 일반적으로 집합 범주로 간주되는 폐쇄 대칭 단면체 범주의 특별한 경우이기 때문이다. 이는 세트 이론의 기초를 다지는 데는 괜찮지만, 일반적인 토포들이 많을수록 우수한 기초를 제공하는 것으로 보인다.

증명-이론적 의미론

단순하게 타이핑된 람다 미적분은 명제적 직관논리의 관계적 파편, 즉 Curry-Howard 이소모르피즘통한 최소논리와 밀접하게 관련되어 있다: 용어는 자연적 추론에서의 증거에 정확히 대응하며, 거주형태는 정확히 최소논리의 토폴로지인 것이다.

대체 구문

위에서 주어진 프레젠테이션만이 단순히 입력된 람다 미적분의 구문을 정의하는 유일한 방법이 아니다. 한 가지 대안은 (구문이 형식화되지 않은 람다 미적분학과 동일하도록) 형식 주석을 완전히 제거하는 동시에 용어들이 힌들리-밀너 형식 추론을 통해 잘 형식화되도록 하는 것이다. 추론 알고리즘은 종료, 소리 및 완전하다. 항이 타이핑될 때마다 알고리즘은 그 유형을 계산한다. More precisely, it computes the term's principal type, since often an unannotated term (such as ) may have more than one type (, , etc., α → \to \\}의 모든 인스턴스.

단순 타이핑된 람다 미적분학의 또 다른 대안적 프레젠테이션은 양방향 유형 확인에 기초하는데, 힌들리-밀너 추론보다 더 많은 유형의 주석을 필요로 하지만 설명하기가 쉽다. 시스템체크을 모두 나타내는 두 가지 판단으로 나뉘는데 τ e {{ \ \\ \ \ \ \ \ \ \ \ \ \ \ \ \ { { { display display display \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Operationally, the three components , , and are all inputs to the checking judgment , whereas the synthesis judgment only takes 을(를) 입력으로 생성하여 유형을 출력으로 생성한다. 이러한 판단은 다음 규칙을 통해 도출된다.

: xx x { { { { { { { {x{\\감마 x1] T2]
[3] [4]
e ee e { { { { { { \ eLe\5] e e { { { { { { { {{ { { { { { { { { { { \\ e\ \ \} \ \ \\v \gam \v \gam \v}}\ \gam \gam \gam \gam \gam \gam

점검 또는 종합 판단의 신중한 선택을 제외하고, 규칙 [1]–[4]이 위의 규칙 (1)–(4)과 거의 동일하다는 것을 준수한다. 이러한 선택은 다음과 같이 설명할 수 있다.

  1. : x(가) 컨텍스트에 있으면 대한 타입 을(를) 합성할 수 있다
  2. 용어 상수의 유형은 고정되어 있으며 합성할 수 있다.
  3. . e 유형이 있는지 확인하려면 : x 로 컨텍스트를 확장하고 }에 \displaystytype \down.
  4. If synthesizes type (in some context), and checks against type (in the same context), then synthesizes type .

합성에 대한 규칙은 위에서 아래로 읽는 반면, 점검에 대한 규칙은 아래에서 위로 읽는 것을 관찰한다. 특히 바운드 변수의 유형은 함수를 확인하는 유형에서 추론할 수 있으므로 규칙 [3]에서 람다 추상화에 대한 주석을 사용할 필요가 없다는 점에 유의하십시오. 마지막으로 규칙 [5]와 [6]을 다음과 같이 설명한다.

  1. } {\ 유형이 있는지 확인하려면 유형 {\}을(를) 합성하는 것으로 충분하다
  2. 가) 유형 을(를) 확인하면 명시적으로 주석이 붙은 용어 : ){\)이( {\ \}을(합성한다

합성과 확인 사이에 강요하는 이 마지막 두 가지 규칙 때문에, 양방향 시스템에서 잘 다듬어졌지만 고지되지 않은 모든 용어를 확인할 수 있다는 것을 쉽게 알 수 있다, 우리가 "완전한" 타입의 주석을 삽입하는 한 말이다. 그리고 사실 주석은 β-redexes에서만 필요하다.

일반 관측치

표준 의미론을 고려할 때 단순 타이핑된 람다 미적분학은 강하게 정상화되고 있다. 즉, 잘 타이핑된 용어들은 항상 값으로 감소한다. , { 추상화. This is because recursion is not allowed by the typing rules: it is impossible to find types for fixed-point combinators and the looping term . Recursion can be added to the language by either having a special operator 표시 )의 표시 {\ {}_} → 일반 재귀 유형을 추가하거나 둘 다 강한 정규화를 제거한다.

그것은 매우 정상적이기 때문에, 간단히 타이핑된 람다 미적분 프로그램이 중단되는지 아닌지는 확실하다: 사실, 그것은 항상 중단된다. 그러므로 우리는 그 언어가 튜링의 완전한 것이 아니라는 결론을 내릴 수 있다.

중요한 결과

  • Tait는 1967년에 - 감소가 강하게 정상화되고 있음을 보여주었다. 코롤러리 - 동등성은 디커피블이 가능하다. Statman은 1977년에 정상화 문제가 기본적인 재귀성이 아니라는 것을 보여주었는데, 이것은 나중에 메어슨(1992)에 의해 단순화되었다. 문제는 Grzegorczyk 계층 구조 E 에 있는 것으로 알려져 있다.[2] 1991년 베르거와 쉬치텐베르크에 의해 순수하게 의미론적 정규화 증명(평가에 의한 정규화 참조)이 제시되었다.
  • - 동등성에 대한 통일 문제는 이해할 수 없다. Huet은 1973년에 3차 통일은 불해독이라는 것을 보여주었고 이것은 1978년에 백스터에 의해 개선되었고 1981년에 골드파브에 의해 2차 통일은 이미 불해독이라는 것을 보여주었다. 더 높은 순서의 일치(한 용어만 실존 변수를 포함하는 통일)가 디커블이 된다는 증거는 2006년 콜린 스털링에 의해 발표되었고, 2009년에 완전한 증거가 발표되었다.[3]
  • 자연수를 유형 → ( Church 숫자)로 인코딩할 수 있다. Schwichtenberg는 1976년에 에서 정확히 확장된 다항식이 교회 숫자를 넘는 함수로 표현될 수 있다는 것을 보여주었다; 이것들은 대략 조건부 연산자에 의해 닫힌 다항식들이다.
  • 풀모델설정기상함수 공간별로 기본형을 세트와 함수형으로 해석하여 주어진다. Friedman은 1975년에 기본 유형이 무한 집합으로 해석될 경우 {{\} - 동등성에 대해 이 해석이 완전하다는 것을 보여주었다. Statman은 1983년에 - 동등성이 전형적으로 모호한 최대 동등성(즉, 형식 대체(Statman의 전형적인 모호성 정리)임을 보여주었다. 이에 대한 유의점은 유한 모델 속성이 유지된다는 것이다. 즉, 유한 집합은 - 동등성으로 식별되지 않는 항을 구별하기에 충분하다.
  • 플롯킨은 람다 항으로 정의할 수 있는 모델의 요소를 특성화하기 위해 1973년에 논리적 관계를 도입했다. 1993년에 융과 티우린은 일반적인 형태의 논리적 관계(다양한 경지를 가진 Kripke 논리적 관계)가 람다 정의 가능성을 정확하게 특징짓는다는 것을 보여주었다. Plotkin과 Statman은 유한 집합에서 생성된 모델의 주어진 요소가 람다 항(Plotkin-Statman 추측)으로 정의 가능한지 여부를 확인할 수 있다고 추측했다. 그 추측이 1993년 로더에 의해 거짓으로 드러났다.

메모들

  1. ^ Reynolds, John (1998). Theories of Programming Languages. Cambridge, England: Cambridge University Press.
  2. ^ Statman, Richard (July 1979). "The typed λ-calculus is not elementary recursive". Theoretical Computer Science. 9 (1): 73–81. doi:10.1016/0304-3975(79)90007-0. ISSN 0304-3975.
  3. ^ Stirling, Colin (22 July 2009). "Decidability of higher-order matching". Logical Methods in Computer Science. 5 (3): 1–52. arXiv:0907.3804. doi:10.2168/LMCS-5(3:2)2009. S2CID 1478837.

참조

외부 링크