当前位置: X-MOL 学术arXiv.cs.LO › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Session Types with Arithmetic Refinements and Their Application to Work Analysis
arXiv - CS - Logic in Computer Science Pub Date : 2020-01-13 , DOI: arxiv-2001.04439
Ankush Das and Frank Pfenning

Session types statically prescribe bidirectional communication protocols for message-passing processes and are in a Curry-Howard correspondence with linear logic propositions. However, simple session types cannot specify properties beyond the type of exchanged messages. In this paper we extend the type system by using index refinements from linear arithmetic capturing intrinsic attributes of data structures and algorithms so that we can express and verify amortized cost of programs using ergometric types. We show that, despite the decidability of Presburger arithmetic, type equality and therefore also type checking are now undecidable, which stands in contrast to analogous dependent refinement type systems from functional languages. We also present a practical incomplete algorithm for type equality and an algorithm for type checking which is complete relative to an oracle for type equality. Process expressions in this explicit language are rather verbose, so we also introduce an implicit form and a sound and complete algorithm for reconstructing explicit programs, borrowing ideas from the proof-theoretic technique of focusing. We conclude by illustrating our systems and algorithms with a variety of examples that have been verified in our implementation.

中文翻译:

具有算术改进的会话类型及其在工作分析中的应用

会话类型静态地规定了消息传递过程的双向通信协议,并且与线性逻辑命题呈 Curry-Howard 对应关系。但是,简单会话类型不能指定超出交换消息类型的属性。在本文中,我们通过使用线性算术的索引改进来扩展类型系统,捕获数据结构和算法的内在属性,以便我们可以表达和验证使用测力类型的程序的摊销成本。我们表明,尽管 Presburger 算术具有可判定性,但类型相等以及类型检查现在都是不可判定的,这与来自函数式语言的类似依赖细化类型系统形成对比。我们还提出了一个实用的不完整的类型相等算法和一个相对于类型相等的预言机是完整的类型检查算法。这种显式语言中的过程表达式相当冗长,因此我们还引入了一种隐式形式和一种健全且完整的算法来重构显式程序,并借鉴了聚焦的证明理论技术。最后,我们通过在我们的实现中经过验证的各种示例来说明我们的系统和算法。
更新日期:2020-01-27
down
wechat
bug