Software Open Access

Revisiting Iso-Recursive Subtyping

Zhou, Yaoda; Dos Santos Oliveira, Bruno Cesar; Zhao, Jinxu


JSON-LD (schema.org) Export

{
  "inLanguage": {
    "alternateName": "eng", 
    "@type": "Language", 
    "name": "English"
  }, 
  "description": "<p>The Amber rules are well-known and widely used for subtyping</p>\n\n<p>iso-recursive types. They were first briefly and informally introduced</p>\n\n<p>in 1985 by Cardelli in a manuscript describing the Amber</p>\n\n<p>language.</p>\n\n<p>Despite their use over many years, important aspects of the metatheory of the iso-recursive</p>\n\n<p>style Amber rules have not been studied in depth or turn out to be</p>\n\n<p>quite challenging to formalize.</p>\n\n<p>&nbsp;</p>\n\n<p>This paper aims to revisit the problem of subtyping iso-recursive</p>\n\n<p>types. We start by introducing a novel declarative specification</p>\n\n<p>that we believe captures the ``spirit&#39;&#39; of Amber-style</p>\n\n<p>iso-recursive subtyping. Informally, the specification states that</p>\n\n<p>two recursive types are subtypes \\emph{if all their finite</p>\n\n<p>unfoldings are subtypes}. The Amber rules are shown to be sound</p>\n\n<p>with respect to this declarative specification. We then derive a</p>\n\n<p>\\emph{sound}, \\emph{complete} and \\emph{decidable} algorithmic</p>\n\n<p>formulation of subtyping that employs a novel \\emph{double</p>\n\n<p>unfolding} rule. Compared to the Amber rules, the double</p>\n\n<p>unfolding rule has the advantage of: 1) being modular; 2)</p>\n\n<p>not requiring reflexivity to be built in; and 3) leading to</p>\n\n<p>an easy proof of transitivity of subtyping. This work</p>\n\n<p>sheds new insights on the theory of subtyping iso-recursive types,</p>\n\n<p>and the new double unfolding rule has important advantages over</p>\n\n<p>the original Amber rules for both implementations and</p>\n\n<p>metatheoretical studies involving recursive types. All results</p>\n\n<p>are mechanically formalized in the Coq theorem prover. As far as</p>\n\n<p>we know, this is the first comprehensive treatment of iso-recursive</p>\n\n<p>subtyping dealing with unrestricted recursive types in a theorem prover.</p>", 
  "license": "https://creativecommons.org/licenses/by/1.0/legalcode", 
  "creator": [
    {
      "affiliation": "The University of Hong Kong", 
      "@type": "Person", 
      "name": "Zhou, Yaoda"
    }, 
    {
      "affiliation": "The University of Hong Kong", 
      "@id": "https://orcid.org/0000-0002-8632-2291", 
      "@type": "Person", 
      "name": "Dos Santos Oliveira, Bruno Cesar"
    }, 
    {
      "affiliation": "The University of Hong Kong", 
      "@type": "Person", 
      "name": "Zhao, Jinxu"
    }
  ], 
  "url": "https://zenodo.org/record/4034438", 
  "datePublished": "2020-09-17", 
  "keywords": [], 
  "version": "1.0", 
  "contributor": [], 
  "@context": "https://schema.org/", 
  "identifier": "https://doi.org/10.5281/zenodo.4034438", 
  "@id": "https://doi.org/10.5281/zenodo.4034438", 
  "@type": "SoftwareSourceCode", 
  "name": "Revisiting Iso-Recursive Subtyping"
}
70
19
views
downloads
All versions This version
Views 7070
Downloads 1919
Data volume 579.6 kB579.6 kB
Unique views 6767
Unique downloads 1616

Share

Cite as