Lambda Calculus가 일부 조합기를 나타내지 않는 이유는 무엇입니까?


18

백서 에서는 Lambda 미적분학으로 표현할 수없는 결합기 (심볼 계산을 나타냄)가 있음을 제안합니다 (사실을 올바르게 이해하는 경우).

답변:


20

실제로하고 싶을 수도 있고 람다 미적분법으로 직접 표현할 수없는 것들이 몇 가지 있습니다.

SF 미적분학이 예입니다. 그 표현력은 뉴스가 아닙니다. 이 논문의 흥미로운 부분 (슬라이드에는 표시되지 않음)은 그 뒤에있는 범주 이론입니다. 당신이 좋아하는 일을 쓸 수 있도록 - SF의 수학은 함수가 인수의 표현을 검사 할 수 혀짤배기 구현과 유사하다 (print (lambda (x) (+ x 2)))"(lambda (x) (+ x 2))".

또 다른 중요한 예는 Plotkin의 평행 또는 입니다. 직관적으로 말하면, 람다 미적분학이 순차적이라는 일반적인 결과가 있습니다. 두 개의 인수를 취하는 함수가 먼저 평가하기 위해 하나를 선택해야합니다. or( or⊤ ⊥) ⟹ , ( or⊥ ⊤) ⟹ ⊤ 및 or⊥ ⊥ ⟹ ⊥ (여기서 ⊥는 종료되지 않은 용어이고 ⊤는 종료 용어 임) 와 같은 람다 용어를 쓰는 것은 불가능합니다 . 병렬 구현은 각 축소의 한 단계를 만들고 인수 중 하나가 종료 될 때마다 중지 할 수 있기 때문에 이것을 "병렬"이라고합니다.

람다 미적분에서 할 수없는 또 다른 것은 입력 / 출력입니다. 추가 프리미티브를 추가해야합니다.

물론, 이러한 모든 예는 기본적으로 람다 항을 데이터로 나타내는 하나의 간접 레벨을 추가하여 람다 미적분학으로 표현할 수 있습니다. 그러나 모델이 덜 흥미로워집니다. 모델링 된 언어의 함수와 람다 추상화 간의 관계가 손실됩니다.


11

질문에 대한 답변은 "계산"및 "표현"을 정의하는 방법에 따라 다릅니다. 반면 에 sclv가 언급 한 LtU스레드 는 다양한 용어의 잘못 정렬 된 정의로 인해 서로 과거를 이야기하는 사람들로 구성됩니다.

구별은 확실히 계산 능력의 하나가 아니며, 고려중인 모든 시스템은 Turing-equivalent입니다. 문제는 단지 Turing-equivalence만이 표현의 구조 또는 의미에 대해 아무 말도하지 않는다는 것입니다. 이를 위해 복잡한 인코딩이나 사소한 초기 상태가 필요한 매우 미니멀 한 계산 모델에서 시스템 보편적 인 계산이 가능한지 또는 누군가가 시스템을 해석하여 보편적 인 환상이 만들어 지는지 확실하지 않을 수도 있습니다. . 예를 들어, 2- 상태, 3- 기호 튜링 기계, 특히 Vaughan Pratt가 제기 한 문제에 관한 이 메일 링리스트 토론을 참조하십시오 .

어쨌든 그려진 차이점은 다음과 같습니다.

  • 시맨틱을 시맨틱을 보존하는 방식으로 프리미티브 오퍼레이션에 시맨틱을 지정하여 시스템에서 직접 표현할 수있는 것
  • 시스템 외부에서 수행되는 해석 절차를 지정하여 "간접적으로"표현 될 수있는 것, 해석이 어떤 의미에서 시스템보다 "간단한"것으로 가정
  • 직접 표현을 제공하는 다른 시스템에 대한 인터프리터를 구성하는 등 완전한 간접 계층으로 시스템에서 시뮬레이션 할 수있는 것.

튜링 동등성은 시스템이 계산 가능한 기능에 대한 세 번째 기준을 충족한다는 것을 암시하지만, 공식적인 논리 시스템이나 프로그래밍 언어 (실제로 다른 정도)에서 우리가 가장 먼저 관심을 갖는 기준입니다.

그것은 매우 비공식적 인 설명이지만, 핵심 아이디어는보다 정확하게 설명 될 수 있습니다. 위에서 언급 한 LtU 스레드는 유사한 라인을 따라 기존 작업에 대한 몇 가지 참조 를 찾을 수 있습니다 .


Schönfinkel의 조합 논리와 Church의 λ- 미적분은 초기에 논리적 추론의 추출 된 추상화로 고안되었으며, 따라서 그들의 구조는 논리적 추론에 매우 깔끔하게 매핑되며 그 반대도 마찬가지입니다. 그들은 또한의 가정 수행 extensionality ETA를 감소 규칙에 의해 기술 등을, : λx. f x어디 x에서 발생하지 않습니다 f, 단지에 해당 f혼자.

실제로, 확장 성의 매우 엄격한 개념은 너무 제한적일 수 있지만, 제한되지 않은 강렬 성은 하위 표현에 대한 국소 추론을 어렵거나 불가능하게 만듭니다.

SF- 미적분은 수정 된 결합 조합 미적분으로, 기본 연산으로 제한된 형태의 강렬 분석을 제공합니다. 부분적으로 적용되는 표현은 해체 할 수 있지만 기본 값이나 정규화되지 않은 표현은 해체 할 수 없습니다. 이것은 ML 스타일 프로그래밍 언어 나 Lisps에서 볼 수있는 매크로와 같은 패턴 매칭과 같은 아이디어에 잘 맞지만, "intensal"용어를 평가하기위한 인터프리터를 효과적으로 구현하지 않으면 SK- 또는 λ- 미적분학에서는 설명 할 수 없습니다.

요약하자면, SF- 미적분학은 SF- 미적분학 해석기를 구현하는 것이 가장 가능성있는 표현이라는 의미에서 λ- 미적분학으로 직접 표현 될 수 없으며, 그 이유는 근본적인 의미 론적 차이입니다. 구조, 또는 외부 행동에 의해 순전히 정의 되는가?


Turing Machine에서 계산을 표현하는 방법에 대해 다른 견해가 있다는 것은 무엇을 의미합니까?
hawkeye

5

배리 제이의 SF 미적분학은 그것이 적용되는 용어의 구조를 조사 할 수 있는데, 이는 기능하지 않습니다. 람다 미적분학과 전통적인 조합 논리는 순전히 기능적이므로 그렇게 할 수 없습니다.

순도를 위반하는 작업을 수행하는 람다 미적분의 많은 확장이 있으며, 대부분 상태, 컨트롤 (예 : 연속을 통해) 또는 논리 변수를 추가하는 등 재 작성 전략을 어느 정도 수정해야합니다.


2
Lambda the Ultimate : Lambda-the-ultimate.org/node/3993
sclv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.