File Download
Links for fulltext
(May Require Subscription)
- Publisher Website: 10.1017/S0956796825000036
- Scopus: eid_2-s2.0-85219131763
- Find via

Supplementary
-
Citations:
- Scopus: 0
- Appears in Collections:
Article: Recursive subtyping for all
| Title | Recursive subtyping for all |
|---|---|
| Authors | |
| Issue Date | 26-Feb-2025 |
| Publisher | Cambridge University Press |
| Citation | Journal of Functional Programming, 2025, v. 35 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 shows how to extend F≤ with iso-recursive types in a new calculus called F≤μ. 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. In addition, we use so-called structural folding/unfolding rules for typing iso-recursive expressions, inspired by the structural unfolding rule proposed by Abadi et al. (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; the conservativity of F≤μ over F≤; and a sound and complete algorithmic formulation of F≤μ. We study two variants of F≤μ. The first one uses an extension of the kernel F≤ (a well-known decidable variant of F≤). This extension accepts equivalent rather than equal bounds and is shown to preserve decidable subtyping. The second variant employs the full F≤ rule for bounded quantification and has undecidable subtyping. Moreover, we also study an extension of the kernel version of F≤μ, called F≤≥μ∧, with a form of intersection types and lower bounded quantification. All the properties from the kernel version of F≤μ are preserved in F≤≥μ∧. All the results in this paper have been formalized in the Coq theorem prover. |
| Persistent Identifier | http://hdl.handle.net/10722/361905 |
| ISSN | 2023 Impact Factor: 1.1 2023 SCImago Journal Rankings: 0.484 |
| DC Field | Value | Language |
|---|---|---|
| dc.contributor.author | Zhou, Litao | - |
| dc.contributor.author | Zhou, Yaoda | - |
| dc.contributor.author | Wan, Qianyong | - |
| dc.contributor.author | Dos Santos Oliveira, Bruno Cesar | - |
| dc.date.accessioned | 2025-09-17T00:31:53Z | - |
| dc.date.available | 2025-09-17T00:31:53Z | - |
| dc.date.issued | 2025-02-26 | - |
| dc.identifier.citation | Journal of Functional Programming, 2025, v. 35 | - |
| dc.identifier.issn | 0956-7968 | - |
| dc.identifier.uri | http://hdl.handle.net/10722/361905 | - |
| 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 decidability, transitivity of subtyping, conservativity, and a sound and complete algorithmic formulation, has been a long-time challenge. This paper shows how to extend F≤ with iso-recursive types in a new calculus called F≤μ. 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. In addition, we use so-called structural folding/unfolding rules for typing iso-recursive expressions, inspired by the structural unfolding rule proposed by Abadi et al. (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; the conservativity of F≤μ over F≤; and a sound and complete algorithmic formulation of F≤μ. We study two variants of F≤μ. The first one uses an extension of the kernel F≤ (a well-known decidable variant of F≤). This extension accepts equivalent rather than equal bounds and is shown to preserve decidable subtyping. The second variant employs the full F≤ rule for bounded quantification and has undecidable subtyping. Moreover, we also study an extension of the kernel version of F≤μ, called F≤≥μ∧, with a form of intersection types and lower bounded quantification. All the properties from the kernel version of F≤μ are preserved in F≤≥μ∧. All the results in this paper have been formalized in the Coq theorem prover.</p> | - |
| dc.language | eng | - |
| dc.publisher | Cambridge University Press | - |
| dc.relation.ispartof | Journal of Functional Programming | - |
| dc.rights | This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. | - |
| dc.title | Recursive subtyping for all | - |
| dc.type | Article | - |
| dc.description.nature | published_or_final_version | - |
| dc.identifier.doi | 10.1017/S0956796825000036 | - |
| dc.identifier.scopus | eid_2-s2.0-85219131763 | - |
| dc.identifier.volume | 35 | - |
| dc.identifier.eissn | 1469-7653 | - |
| dc.identifier.issnl | 0956-7968 | - |
