Practical Subtyping for Curry-Style Languages

Author:

Lepigre Rodolphe1,Raffalli Christophe2

Affiliation:

1. LAMA, CNRS, Univ. Savoie Mont Blanc and Inria, LSV, CNRS, Univ. Paris-Saclay

2. LAMA, CNRS, Univ. Savoie Mont Blanc and IMERL, FING, UdelaR

Abstract

We present a new, syntax-directed framework for Curry-style type systems with subtyping. It supports a rich set of features, and allows for a reasonably simple theory and implementation. The system we consider has sum and product types, universal and existential quantifiers, and inductive and coinductive types. The latter two may carry size invariants that can be used to establish the termination of recursive programs. For example, the termination of quicksort can be derived by showing that partitioning a list does not increase its size. The system deals with complex programs involving mixed induction and coinduction, or even mixed polymorphism and (co-)induction. One of the key ideas is to separate the notion of size from recursion. We do not check the termination of programs directly, but rather show that their (circular) typing proofs are well-founded. Termination is then obtained using a standard (semantic) normalisation proof. To demonstrate the practicality of the system, we provide an implementation accepting all the examples discussed in the article.

Publisher

Association for Computing Machinery (ACM)

Subject

Software

Reference65 articles.

1. Martín Abadi Luca Cardelli and Gordon Plotkin. 1993. Types for the Scott Numerals. Retrieved on the 12 September 2016 from http://lucacardelli.name/papers/notes/scott2.ps. Martín Abadi Luca Cardelli and Gordon Plotkin. 1993. Types for the Scott Numerals. Retrieved on the 12 September 2016 from http://lucacardelli.name/papers/notes/scott2.ps.

2. Choice in Dynamic Linking

3. Andreas Abel. 1998. Foetus - Termination Checker for Simple Functional Programs. Retrieved on the 7 July 2017 from http://www2.tcs.ifi.lmu.de/∼abel/foetus.pdf. Andreas Abel. 1998. Foetus - Termination Checker for Simple Functional Programs. Retrieved on the 7 July 2017 from http://www2.tcs.ifi.lmu.de/∼abel/foetus.pdf.

4. Andreas Abel. 2006. Semi-continuous Sized Types and Termination. Springer 72--88. 10.1007/11874683_5 Andreas Abel. 2006. Semi-continuous Sized Types and Termination. Springer 72--88. 10.1007/11874683_5

5. Wellfounded recursion with copatterns

Cited by 5 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Parametric Subtyping for Structural Parametric Polymorphism;Proceedings of the ACM on Programming Languages;2024-01-05

2. The Complex(ity) Landscape of Checking Infinite Descent;Proceedings of the ACM on Programming Languages;2024-01-05

3. Polarized Subtyping;Programming Languages and Systems;2022

4. Monotone recursive types and recursive data representations in Cedille;Mathematical Structures in Computer Science;2021-06

5. PSPACE-Completeness of a Thread Criterion for Circular Proofs in Linear Logic with Least and Greatest Fixed Points;Lecture Notes in Computer Science;2019

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3