람다 큐브
Lambda cube이 글은 위키피디아의 품질 기준을 준수하기 위해 다시 쓰일 필요가 있을 수 있는데, 이는 기사의 주제에 대한 이해에 기초하는 기본 개념에 대해 대체로 일관성이 없고 혼란스럽고 오해의 소지가 있는 용어를 사용하기 때문이다.(2020년 9월) |
수학논리와 유형이론에서 λ-큐브(또한 쓰여진 람다 큐브)는 헨크 바렌트레트가[1] 시공의 미적분이 단순타입 λ-미적분의 일반화인 다른 차원을 조사하기 위해 도입한 틀이다.큐브의 각 차원은 용어와 유형 사이의 새로운 종류의 종속성에 해당한다.여기서 "의존성"이란 용어나 유형을 바인딩할 수 있는 용어나 유형의 용량을 말한다.λ-큐브의 각 치수는 다음과 같다.
- x축 }): 종속 유형에 해당하는 항을 바인딩할 수 있는 유형.
- y축( ) : 다형성에 해당하는 유형을 바인딩할 수 있는 용어.
- z축( }): 유형을 바인딩할 수 있는 유형으로, ( () 유형 연산자에 해당된다.
이 세 가지 차원을 결합하는 다른 방법은 각각 다른 종류의 타이핑 시스템에 해당하는 큐브의 8 정점을 산출한다.λ-큐브는 순수형 체계의 개념으로 일반화할 수 있다.
시스템의 예
(λ→) 간단히 입력된 람다 미적분
λ-큐브에서 발견되는 가장 간단한 계통은 간단히 타이핑된 람다 미적분학으로, λ→라고도 한다.이 시스템에서 추상화를 구성하는 유일한 방법은 용어에 의존하는 용어를 타이핑 규칙과 함께 만드는 것이다.
(iii2) 시스템
시스템 F("2차 타이핑 람다 미적분"[2]을 위해 22라고도 함)에는 다음과 같은 규칙으로 용어가 유형에 따라 달라질 수 있는 {\로 작성된 다른 유형의 추상화가 있다
로 시작하는 용어는 ML 유사 언어의 폴리모픽 함수와 유사하게 다른 기능을 얻기 위해 다른 유형에 적용할 수 있기 때문에 폴리모픽이라고 불린다.예를 들어, 다형성 정체성은
재미있다 x -> x
OCaml의 종류는
'a -> 'a
어떤 종류의 논증도 취할 수 있다는 의미'a
그런 유형의 요소를 반환하십시오.이 유형은 type α → α → α 타입에 해당한다
(Ω) 시스템 Ω
시스템 F 에서는 다른 유형에 의존하는 유형을 공급하기 위해 구조가 도입된다.이를 유형 생성자라고 하며, "유형을 값으로 하는 함수"[3]를 구축하는 방법을 제공한다.그러한 타입 생성자의 예로는 R := : . B.( →B )→ )→B {\ A가 있다. Bto B 여기서 ":∗ 는 비공식적으로 " A은(는 유형)"을 의미한다.형식 매개 변수 을(를) 인수로 삼아 A 값 T {\ }s의 유형을 반환하는 함수 구체적인 프로그래밍에서 이 특성은 고려하기보다는 언어 내에서 유형 생성자를 정의하는 기능에 해당한다.원시적인 존재로 만들었지이전 유형 생성자는 대략 OCaml에 라벨이 붙은 잎이 있는 트리의 다음과 같은 정의에 해당한다.
타자를 치다 'a 나무 = 잎 의 'a 노드 의 'a 나무 * 'a 나무
이 타입 생성자는 새로운 타입을 얻기 위해 다른 타입에 적용될 수 있다.예를 들어, 정수 나무 유형을 얻으려면:
타자를 치다 int_tree = 인트로 나무
시스템 F 은(는) 일반적으로 단독으로 사용되지 않지만 유형 생성자의 독립적 특징을 분리하는 데 유용하다.[4]
(λP) 람다-P
λπ라고도 하며 LF 논리 프레임워크와 밀접하게 관련되어 있는 λP 시스템에서는 이른바 종속형(dependent type)을 가지고 있다.이것들은 용어에 의존할 수 있도록 허용된 유형이다.이 제도의 중요한 도입 규칙은 다음과 같다.
여기서 은(는) 유효한 유형을 나타낸다.새로운 타입 생성자 은 Curry-Howard 이형성을 통해 범용 정량화에 대응하며, 시스템 λP는 전체적으로 커넥티브로서만 함축된 1차 로직에 대응한다.콘크리트 프로그래밍에서 이러한 의존적 유형의 예는 일정 길이의 벡터 유형이다. 즉, 길이는 그 유형에 따라 달라지는 용어다.
(FΩ) 시스템 Ω
System FΩ은 System F의 생성자와 System F 의 유형 생성자를 모두 결합하여, 시스템 FΩ은 유형에 따라 다른 유형과 유형에 따라 달라지는 항을 모두 제공한다
(λC) 시공 미적분
큐브에서 inC로 표시되거나 ωPΩ으로 표시된 시공의 미적분학에서 이 네 가지는 동거를 특징으로 하여 유형과 항이 모두 유형과 항에 따라 달라질 수 있다.[1]: 130 범용 을(를) 제외한 모든 유형이 그 자체로 유형을 가진 용어이기 때문에 용어와 유형 사이에 존재하는 명확한 경계는 다소 폐지된다.
형식 정의
단순하게 타이핑된 람다 미적분학을 기반으로 하는 모든 시스템의 경우, 큐브에 있는 모든 시스템은 β-축소 개념과 함께 첫 번째, 원시 용어, 그리고 그 용어를 입력할 수 있는 타이핑 규칙의 두 단계로 주어진다.
sorts 은S := { , } {\ S\}}으로 되며,s {\ 문자로 s를 나타낸다 x, ,… 자로 대표되는 변수의 V이(가) 있다 큐브 8개 시스템의 원시 항은 다음과 같은 구문으로 주어진다.
및 → x: . 를 나타낸다 이(가) 에서 무료로 발생하지 않는 경우 B
이 환경은 ∣, , : 에 의해 일반적으로 제공된다.
β-축소 개념은 큐브의 모든 시스템에 공통적이다.작성 → 규칙에 의해 부여된다.
큐브의 모든 시스템에도 다음과 같은 타이핑 규칙이 공통적이다.
규칙에서 허용되는 시스템과 페어 1, 2) 간의 대응은 다음과 같다.
λ→ | ![]() | ![]() | ![]() | ![]() |
λP | ![]() | ![]() | ![]() | ![]() |
λ2 | ![]() | ![]() | ![]() | ![]() |
λω | ![]() | ![]() | ![]() | ![]() |
λP2 | ![]() | ![]() | ![]() | ![]() |
λωω | ![]() | ![]() | ![]() | ![]() |
λω | ![]() | ![]() | ![]() | ![]() |
λC | ![]() | ![]() | ![]() | ![]() |
큐브의 각 방향은 한 쌍(모든 시스템에서 공유하는 쌍 (,) 제외)에 해당하며, 각 쌍은 다음 항과 유형 사이에 의존할 수 있는 하나의 가능성에 대응한다.
- ( ,) 은(는) 용어에 따라 항이 달라지도록 허용한다.
- ( ,) 을 (를) 사용하면 용어에 따라 유형이 달라진다.
- ( ,) 은(는) 용어가 유형에 따라 달라질 수 있도록 허용한다.
- ( ,) 을(를) 사용하면 유형에 따라 유형이 달라진다.
시스템 간 비교
λ→
얻을 수 있는 전형적인 파생은
계산력이 상당히 약해 확장된 다항식(조건부 연산자와 함께 하는 폴리노멀)에 해당한다.[5]
λ2
λ2에서는 그러한 용어는 다음과 같이 얻을 수 있다.
다형성(多形性)은 λ→에서 구성할 수 없었던 기능도 구축할 수 있게 한다.더 정확히 말하면, 22에서 정의할 수 있는 함수는 2차 순서의 페아노 산술에서 가능한 총합이다.[6]특히 모든 원시 재귀 기능은 정의할 수 있다.
λP
λP에서 용어에 따라 유형을 갖는 능력은 논리 술어를 표현할 수 있다는 것을 의미한다.예를 들어, 다음이 파생 가능하다.
그러나 계산적 관점에서 보면, 종속적인 유형을 갖는다고 해서 계산력이 향상되는 것은 아니며, 더 정밀한 유형 특성을 표현할 수 있는 가능성만 있다.[7]
변환 규칙은 유형 내 용어에 대한 계산을 수행할 수 있기 때문에 종속 유형을 처리할 때 매우 필요하다.For instance, if you have and ,A : (y) A을(를) 얻으려면 변환 규칙을 적용해야 need : .
λω
Ω으로, 다음 연산자
컴퓨팅의 관점에서 λω는 극히 강하며, 언어 프로그래밍의 기초로서 여겨져 왔다.[8]
λC
시공의 미적분은 predP의 술어 표현력과 λω의 연산력을 모두 가지고 있기 때문에 cC를 ωPΩ이라고도 부르기 [1]: 130 때문에 논리적인 측면과 계산적인 측면 모두에서 매우 강력하다.
다른 시스템과의 관계
Automath 시스템은 논리적인 관점에서 λ2와 유사하다.ML과 같은 언어들은 타이핑의 관점에서 볼 때, 제한된 종류의 다형체를 인정하기 때문에 λ→λ2의 어딘가에 놓여 있는데, 그것은 혼전 정상적인 형태의 유형이다.그러나, 일부 재귀 연산자를 특징으로 하기 때문에, 이들의 연산력은 λ2보다 크다.[7]Coq 시스템은 단 하나의 전형적이지 않은}, 그리고 유도 유형을 구성할 수 있는 능력이 아니라 우주의 선형 계층 구조를 가진 λC의 확장에 기반을 두고 있다.
순수형 시스템은 임의의 종류, 공리, 제품 및 추상화 규칙 집합을 가진 큐브의 일반화라고 볼 수 있다.Conversely, the systems of the lambda cube can be expressed as pure type systems with two sorts , the only axiom , and a set of rules such that ) {\R\ (\square,*), [1]
커리-하워드 이소모르피즘을 통해 람다 큐브에 있는 시스템들과 논리 시스템들 사이에 일대일 대응,[1] 즉 다음과 같은 것이 있다.
큐브의 시스템 | 논리 시스템 |
---|---|
λ→ | (첫째 순서) 명제 미적분학 |
λ2 | 2차 제안 미적분학 |
λω | 약하게 높은 순서의 명제 미적분학 |
λω | 상위 순서 제안 미적분학 |
λP | (첫 번째 순서) 술어 논리학 |
λP2 | 2차 술어 미적분학 |
λωω | 약한 상위 순서 술어 미적분학 |
λC | 건축 미적분학 |
모든 로직은 타당하지만즉, 유일한 커넥티브는→ 및 \wedge } 또는 ¬ {\ 등)와 같은 다른 커넥티브는 2차 이상의 로직렬 로직으로 정의할 수 있다.약한 고차 로직에서는 고차 술어에 대한 변수가 있지만, 고차 술어에 대한 계량화는 수행할 수 없다.
공통 속성
큐브의 모든 시스템이 즐기십시오.
- the Church-Rosser property: if and then there exists such that and ;
- 환자 감소 속성: : T 및 → 다음에 : \
- 유형의 고유성: : B 및 : 다음에 = ′
이 모든 것들은 일반 순수형 시스템에서 증명될 수 있다.[9]
큐브 시스템에서 잘 타이핑된 용어는 모든 순수 유형 시스템에 공통적인 것은 아니지만 강하게 정상화되고 있다.[1]큐브에 튜링이 완료된 시스템이 없음.[7]
서브타이핑
그러나 서브타이핑과 다형성을 결합한 고차 경계 정량화로 알려진 과 같은 시스템이 실질적인 관심사가 되고 있으며, 더 나아가 경계형 연산자로 일반화될 수 있음에도 불구하고 서브타이핑은 큐브에 나타나지 않는다. omega 에 대한 추가 확장은 순전히 기능적인 객체의 정의를 가능하게 한다. 이러한 시스템은 람다 큐브 페이퍼가 간행된 후 일반적으로 개발되었다.[10]
큐브 아이디어는 수학자 헨크 바렌드렛(1991) 때문이다.순수형 시스템의 프레임워크는 큐브의 모든 모서리와 다른 많은 시스템들이 이 일반적인 프레임워크의 인스턴스로 표현될 수 있다는 의미에서 람다 큐브를 일반화한다.[11]이 틀은 람다 큐브를 2년 앞서게 한다.1991년 논문에서 바렌트레트는 이 틀에서 큐브의 모서리를 규정하기도 한다.
참고 항목
- Olivier Ridoux는 그의 Habilitation a diriger lesherches에서 람다 큐브의 컷아웃 템플릿과 8개의 꼭지점이 면으로 대체되는 옥타헤드론으로서 큐브를 이중으로 표현하고 12개의 가장자리가 면으로 대체되는 도데케드론으로서의 이중 표현을 제공한다.[12]
- 호모토피형 이론
메모들
- ^ a b c d e f Barendregt, Henk (1991). "Introduction to generalized type systems". Journal of Functional Programming. 1 (2): 125–154. doi:10.1017/s0956796800020025. hdl:2066/17240. ISSN 0956-7968.
- ^ Nederpelt, Rob; Geuvers, Herman (2014). Type Theory and Formal Proof. Cambridge University Press. p. 69. ISBN 9781107036505.
- ^ 네더펠트 & 지우버스 2014, 페이지 85
- ^ 네더펠트 & 지우버스 2014, 페이지 100
- ^ Schwichtenberg, Helmut (1975). "Definierbare Funktionen imλ-Kalkül mit Typen". Archiv für Mathematische Logik und Grundlagenforschung (in German). 17 (3–4): 113–114. doi:10.1007/bf02276799. ISSN 0933-5846.
- ^ Girard, Jean-Yves; Lafont, Yves; Taylor, Paul (1989). Proofs and Types. Cambridge Tracts in Theoretical Computer Science. Vol. 7. Cambridge University Press. ISBN 9780521371810.
- ^ a b c Ridoux, Olivier (1998). Lambda-Prolog de A à Z ... ou presque (PDF). [s.n.] OCLC 494473554.
- ^ Pierce, Benjamin; Dietzen, Scott; Michaylov, Spiro (1989). Programming in higher-order typed lambda-calculi. Computer Science Department, Carnegie Mellon University. OCLC 20442222. CMU-CS-89-111 ERGO-89-075.
- ^ Sørensen, Morten Heine; Urzyczyin, Pawel (2006). "Pure type systems and the λ-cube". Lectures on the Curry-Howard Isomorphism. Elsevier. pp. 343–359. doi:10.1016/s0049-237x(06)80015-7. ISBN 9780444520777.
- ^ Pierce, Benjamin (2002). Types and programming languages. MIT Press. pp. 467–490. ISBN 978-0262162098. OCLC 300712077.
- ^ 피어스 2002, 페이지 466
- ^ 리두 1998, 페이지 70
추가 읽기
- Peyton Jones, Simon; Meijer, Erik (1997). "Henk: A Typed Intermediate Language" (PDF).
Henk is based directly on the lambda cube, an expressive family of typed lambda calculi.