File Download
Links for fulltext
(May Require Subscription)
- Publisher Website: 10.1145/3571241
- Scopus: eid_2-s2.0-85146536206
- WOS: WOS:000910847500048
Supplementary
- Citations:
- Appears in Collections:
Article: Recursive Subtyping for All
Title | Recursive Subtyping for All |
---|---|
Authors | |
Keywords | Bounded Polymorphism Iso-Recursive Subtyping Object Encodings |
Issue Date | 9-Jan-2023 |
Publisher | ACM |
Citation | Proceedings of the ACM on Programming Languages, 2023, v. 7, n. POPL, p. 1396-1425 How to Cite? |
Abstract | Recursive types and bounded quantification are prominent features in many modern programming languages, such as Java, C#, Scala or TypeScript. Unfortunately, the interaction between recursive types, bounded quantification and subtyping has shown to be problematic in the past. Consequently, defining a simple foundational calculus that combines those features and has desirable properties, such as decidability, transitivity of subtyping, conservativity and a sound and complete algorithmic formulation has been a long time challenge. This paper presents an extension of kernel F≤, called F≤µ, with iso-recursive types. F≤ is a well-known polymorphic calculus with bounded quantification. In F≤µ we add iso-recursive types, and correspondingly extend the subtyping relation with iso-recursive subtyping using the recently proposed nominal unfolding rules. We also add two smaller extensions to F≤. The first one is a generalization of the kernel F≤ rule for bounded quantification that accepts equivalent rather than equal bounds. The second extension is the use of so-called structural folding/unfolding rules, inspired by the structural unfolding rule proposed by Abadi, Cardelli, and Viswanathan [1996]. The structural rules add expressive power to the more conventional folding/unfolding rules in the literature, and they enable additional applications. We present several results, including: type soundness; transitivity and decidability of subtyping; the conservativity of F≤µ over F≤; and a sound and complete algorithmic formulation of F≤µ. Moreover, we study an extension of F≤µ, called F≤≥µ, which includes lower bounded quantification in addition to the conventional (upper) bounded quantification of F≤. All the results in this paper have been formalized in the Coq theorem prover. |
Persistent Identifier | http://hdl.handle.net/10722/339348 |
ISI Accession Number ID |
DC Field | Value | Language |
---|---|---|
dc.contributor.author | Zhou, Litao | - |
dc.contributor.author | Zhou, Yaoda | - |
dc.contributor.author | Oliveira, Bruno C d S | - |
dc.date.accessioned | 2024-03-11T10:35:53Z | - |
dc.date.available | 2024-03-11T10:35:53Z | - |
dc.date.issued | 2023-01-09 | - |
dc.identifier.citation | Proceedings of the ACM on Programming Languages, 2023, v. 7, n. POPL, p. 1396-1425 | - |
dc.identifier.uri | http://hdl.handle.net/10722/339348 | - |
dc.description.abstract | <p>Recursive types and bounded quantification are prominent features in many modern programming languages, such as Java, C#, Scala or TypeScript. Unfortunately, the interaction between recursive types, bounded quantification and subtyping has shown to be problematic in the past. Consequently, defining a simple foundational calculus that combines those features and has desirable properties, such as <em>decidability</em>, <em>transitivity</em> of subtyping, <em>conservativity</em> and a sound and complete algorithmic formulation has been a long time challenge. </p><p>This paper presents an extension of kernel <em>F</em>≤, called <em>F</em>≤µ, with iso-recursive types. <em>F</em>≤ is a well-known polymorphic calculus with bounded quantification. In <em>F</em>≤µ we add iso-recursive types, and correspondingly extend the subtyping relation with iso-recursive subtyping using the recently proposed nominal unfolding rules. We also add two smaller extensions to <em>F</em>≤. The first one is a generalization of the kernel <em>F</em>≤ rule for bounded quantification that accepts <em>equivalent</em> rather than <em>equal</em> bounds. The second extension is the use of so-called <em>structural</em> folding/unfolding rules, inspired by the structural unfolding rule proposed by Abadi, Cardelli, and Viswanathan [1996]. The structural rules add expressive power to the more conventional folding/unfolding rules in the literature, and they enable additional applications. We present several results, including: type soundness; transitivity and decidability of subtyping; the conservativity of <em>F</em>≤µ over <em>F</em>≤; and a sound and complete algorithmic formulation of <em>F</em>≤µ. Moreover, we study an extension of <em>F</em>≤µ, called <em>F</em>≤≥µ, which includes <em>lower bounded quantification</em> in addition to the conventional (upper) bounded quantification of <em>F</em>≤. All the results in this paper have been formalized in the Coq theorem prover.</p> | - |
dc.language | eng | - |
dc.publisher | ACM | - |
dc.relation.ispartof | Proceedings of the ACM on Programming Languages | - |
dc.rights | This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. | - |
dc.subject | Bounded Polymorphism | - |
dc.subject | Iso-Recursive Subtyping | - |
dc.subject | Object Encodings | - |
dc.title | Recursive Subtyping for All | - |
dc.type | Article | - |
dc.description.nature | published_or_final_version | - |
dc.identifier.doi | 10.1145/3571241 | - |
dc.identifier.scopus | eid_2-s2.0-85146536206 | - |
dc.identifier.volume | 7 | - |
dc.identifier.issue | POPL | - |
dc.identifier.spage | 1396 | - |
dc.identifier.epage | 1425 | - |
dc.identifier.eissn | 2475-1421 | - |
dc.identifier.isi | WOS:000910847500048 | - |
dc.identifier.issnl | 2475-1421 | - |