当前位置: X-MOL 学术ACM Trans. Program. Lang. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Classical Sequent Calculus with Dependent Types
ACM Transactions on Programming Languages and Systems ( IF 1.3 ) Pub Date : 2019-03-15 , DOI: 10.1145/3230625
Étienne Miquey 1
Affiliation  

Dependent types are a key feature of the proof assistants based on the Curry-Howard isomorphism. It is well known that this correspondence can be extended to classical logic by enriching the language of proofs with control operators. However, they are known to misbehave in the presence of dependent types, unless dependencies are restricted to values. Moreover, while sequent calculi naturally support continuation-passing-style interpretations, there is no such presentation of a language with dependent types. The main achievement of this article is to give a sequent calculus presentation of a call-by-value language with a control operator and dependent types, and to justify its soundness through a continuation-passing-style translation. We start from the call-by-value version of the λμ˜μ -calculus. We design a minimal language with a value restriction and a type system that includes a list of explicit dependencies to maintain type safety. We then show how to relax the value restriction and introduce delimited continuations to directly prove the consistency by means of a continuation-passing-style translation. Finally, we relate our calculus to a similar system by Lepigre and present a methodology to transfer properties from this system to our own.

中文翻译:

具有依赖类型的经典序列演算

依赖类型是基于 Curry-Howard 同构的证明助手的一个关键特征。众所周知,通过使用控制运算符丰富证明语言,这种对应可以扩展到经典逻辑。但是,除非依赖项仅限于值,否则它们在存在依赖类型时会出现行为异常。此外,虽然后续演算自然支持连续传递式解释,但不存在具有依赖类型的语言的这种表示。本文的主要成就是对具有控制运算符和依赖类型的按值调用语言进行后续演算演示,并通过延续传递式翻译证明其合理性。我们从按值调用的版本开始λμ~μ-结石。我们设计了一种具有值限制的最小语言和一个类型系统,其中包括一个显式依赖项列表以维护类型安全。然后,我们展示了如何放宽值限制并引入定界延续,以通过延续传递式翻译直接证明一致性。最后,我们将我们的微积分与 Lepigre 的类似系统联系起来,并提出了一种将属性从该系统转移到我们自己的系统的方法。
更新日期:2019-03-15
down
wechat
bug