언어 (및 유형 시스템)가 자체 용어에 대한 이론을 증명할 수있게 만드는 요인은 무엇입니까?


12

나는 최근 에 자체 용어에 대한 수학적 이론을 입증 할 수있는 미니멀리스트 프로그래밍 언어 인 Aaron 's Cedille-Core 를 구현하려고 시도했다 . 또한 λ로 인코딩 된 데이터 유형에 대한 유도가 입증되었으므로 확장이 필요한 이유가 더 명확 해졌습니다.

더 적은 부분에서, 나는 여전히 그 확장이 어디에서 왔는지 궁금합니다. 왜 그들이 무엇입니까? 무엇이 그들을 정당화합니까? 예를 들어, 재귀와 같은 일부 확장은 언어를 증명 시스템으로 망칩니다. 다른 프리미티브로 CoC를 확장하기로 결정한 경우 어떻게 정당화 할 수 있습니까? 나는 정규화의 증거가 필요하다는 것을 이해하지만, 그러한 기본 요소들이 "이해된다"는 것을 증명하지는 못한다.

간단히 말해서, 언어 (및 유형 시스템)를 자체 용어에 대한 이론을 입증 할 수있는 시스템으로 규정하는 것은 무엇입니까?


이 질문과 관련된 블로그를 읽었지만 지금 찾을 수 없습니다. ( "System T is enough!"라는 문장이나 이와 유사한 내용이 포함되어 있으며 종속 형식 시스템에 대해 이야기했습니다.
Labbekak

2
그것을 찾았습니다 : queuea9.wordpress.com/2010/01/17/… 그것은 실제로 Aaron Stump에 의해 작성되었으므로 이미 알고있을 것입니다.
Labbekak

보호되지 않은 재귀는 언어를 증거 시스템으로 "파괴"하지만 보호 된 재귀는 그렇지 않습니다. 프리미티브가 의미가 있음을 증명하기 위해 모델을 작성한다고 말하고 싶습니다. 그리고 그 자체의 용어에 대한 이론을 증명하기 위해서는 여러분이 증명하는 것들이 당신의 용어에 대해 이야기 할 수 있도록 일종의 카레 – 하워드 동형이 필요하고 의존적 인 유형이 필요합니다.
xavierm02

답변:


5

[자기 광고가 이어지지 만 이것이 관련이 있다고 생각합니다.]

tututuv,(λx.x)vv

물론 동등성을 가정 할 수도 있고 여러 유형의 수량 화기 (유형 / 비 유형, 범용 / 존재)가 있습니다. 이 메커니즘은 모든 프로그램에 대해 추론하는 데 사용할 수 있습니다 (종료되거나 유형이 증명되지 않아도 됨). 증거로 사용되는 프로그램은 시스템에 의해 종료되어야한다는 것이 유일한 제약입니다 (임의 일반 재귀로 인해 불일치가 발생 함).

이것을 확인하려면 몇 가지 참조가 있습니다.

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