File Download
  Links for fulltext
     (May Require Subscription)
Supplementary

Article: QuickSub: Efficient Iso-Recursive Subtyping

TitleQuickSub: Efficient Iso-Recursive Subtyping
Authors
KeywordsAlgorithm
Recursive types
Subtyping
Issue Date7-Jan-2025
PublisherAssociation for Computing Machinery (ACM)
Citation
Proceedings of the ACM on Programming Languages, 2025, v. 9 How to Cite?
AbstractMany programming languages need to check whether two recursive types are in a subtyping relation. Traditionally recursive types are modelled in two different ways: equi- or iso- recursive types. While efficient algorithms for subtyping equi-recursive types are well studied for simple type systems, efficient algorithms for iso-recursive subtyping remain understudied. In this paper we present QuickSub: an efficient and simple to implement algorithm for iso-recursive subtyping. QuickSub has the same expressive power as the well-known iso-recursive Amber rules. The worst case complexity of QuickSub is O(nm), where m is the size of the type and n is the number of recursive binders. However, in practice, the algorithm is nearly linear with the worst case being hard to reach. Consequently, in many common cases, QuickSub can be several times faster than alternative algorithms. We validate the efficiency of QuickSub with an empirical evaluation comparing it to existing equi-recursive and iso-recursive subtyping algorithms. We prove the correctness of the algorithm and formalize a simple calculus with recursive subtyping and records. For this calculus we also show how type soundness can be proved using QuickSub. All the results have been formalized and proved in the Coq proof assistant.
Persistent Identifierhttp://hdl.handle.net/10722/361900
ISSN
2023 Impact Factor: 2.2
2023 SCImago Journal Rankings: 1.242

 

DC FieldValueLanguage
dc.contributor.authorZhou, Litao-
dc.contributor.authorDos Santos Oliveira, Bruno Cesar-
dc.date.accessioned2025-09-17T00:31:48Z-
dc.date.available2025-09-17T00:31:48Z-
dc.date.issued2025-01-07-
dc.identifier.citationProceedings of the ACM on Programming Languages, 2025, v. 9-
dc.identifier.issn2475-1421-
dc.identifier.urihttp://hdl.handle.net/10722/361900-
dc.description.abstractMany programming languages need to check whether two recursive types are in a subtyping relation. Traditionally recursive types are modelled in two different ways: equi- or iso- recursive types. While efficient algorithms for subtyping equi-recursive types are well studied for simple type systems, efficient algorithms for iso-recursive subtyping remain understudied. In this paper we present QuickSub: an efficient and simple to implement algorithm for iso-recursive subtyping. QuickSub has the same expressive power as the well-known iso-recursive Amber rules. The worst case complexity of QuickSub is O(nm), where m is the size of the type and n is the number of recursive binders. However, in practice, the algorithm is nearly linear with the worst case being hard to reach. Consequently, in many common cases, QuickSub can be several times faster than alternative algorithms. We validate the efficiency of QuickSub with an empirical evaluation comparing it to existing equi-recursive and iso-recursive subtyping algorithms. We prove the correctness of the algorithm and formalize a simple calculus with recursive subtyping and records. For this calculus we also show how type soundness can be proved using QuickSub. All the results have been formalized and proved in the Coq proof assistant.-
dc.languageeng-
dc.publisherAssociation for Computing Machinery (ACM)-
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.subjectAlgorithm-
dc.subjectRecursive types-
dc.subjectSubtyping-
dc.titleQuickSub: Efficient Iso-Recursive Subtyping-
dc.typeArticle-
dc.description.naturepublished_or_final_version-
dc.identifier.doi10.1145/3704869-
dc.identifier.scopuseid_2-s2.0-85215983538-
dc.identifier.volume9-
dc.identifier.eissn2475-1421-
dc.identifier.issnl2475-1421-

Export via OAI-PMH Interface in XML Formats


OR


Export to Other Non-XML Formats