File Download
  Links for fulltext
     (May Require Subscription)
Supplementary

Article: Recursive Subtyping for All

TitleRecursive Subtyping for All
Authors
KeywordsBounded Polymorphism
Iso-Recursive Subtyping
Object Encodings
Issue Date9-Jan-2023
PublisherACM
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 decidabilitytransitivity 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 Identifierhttp://hdl.handle.net/10722/339348
ISI Accession Number ID

 

DC FieldValueLanguage
dc.contributor.authorZhou, Litao-
dc.contributor.authorZhou, Yaoda-
dc.contributor.authorOliveira, Bruno C d S-
dc.date.accessioned2024-03-11T10:35:53Z-
dc.date.available2024-03-11T10:35:53Z-
dc.date.issued2023-01-09-
dc.identifier.citationProceedings of the ACM on Programming Languages, 2023, v. 7, n. POPL, p. 1396-1425-
dc.identifier.urihttp://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.languageeng-
dc.publisherACM-
dc.relation.ispartofProceedings of the ACM on Programming Languages-
dc.rightsThis work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.-
dc.subjectBounded Polymorphism-
dc.subjectIso-Recursive Subtyping-
dc.subjectObject Encodings-
dc.titleRecursive Subtyping for All-
dc.typeArticle-
dc.description.naturepublished_or_final_version-
dc.identifier.doi10.1145/3571241-
dc.identifier.scopuseid_2-s2.0-85146536206-
dc.identifier.volume7-
dc.identifier.issuePOPL-
dc.identifier.spage1396-
dc.identifier.epage1425-
dc.identifier.eissn2475-1421-
dc.identifier.isiWOS:000910847500048-
dc.identifier.issnl2475-1421-

Export via OAI-PMH Interface in XML Formats


OR


Export to Other Non-XML Formats