Software Open Access

Revisiting Iso-Recursive Subtyping

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


JSON Export

{
  "files": [
    {
      "links": {
        "self": "https://zenodo.org/api/files/d994620c-6409-415a-9646-c179ae642fc5/MIT%20License"
      }, 
      "checksum": "md5:a21c59d0814e1e02c396f0751564482a", 
      "bucket": "d994620c-6409-415a-9646-c179ae642fc5", 
      "key": "MIT License", 
      "type": "", 
      "size": 1066
    }, 
    {
      "links": {
        "self": "https://zenodo.org/api/files/d994620c-6409-415a-9646-c179ae642fc5/OOPSLA2020-artifact.zip"
      }, 
      "checksum": "md5:29eae91a6a0e0daf0055dd4077992c13", 
      "bucket": "d994620c-6409-415a-9646-c179ae642fc5", 
      "key": "OOPSLA2020-artifact.zip", 
      "type": "zip", 
      "size": 113468
    }, 
    {
      "links": {
        "self": "https://zenodo.org/api/files/d994620c-6409-415a-9646-c179ae642fc5/readme"
      }, 
      "checksum": "md5:0aa23aa308584f80dd0dea5237308936", 
      "bucket": "d994620c-6409-415a-9646-c179ae642fc5", 
      "key": "readme", 
      "type": "", 
      "size": 165
    }
  ], 
  "owners": [
    136088
  ], 
  "doi": "10.5281/zenodo.4034438", 
  "stats": {
    "version_unique_downloads": 16.0, 
    "unique_views": 68.0, 
    "views": 71.0, 
    "version_views": 71.0, 
    "unique_downloads": 16.0, 
    "version_unique_views": 68.0, 
    "volume": 579561.0, 
    "version_downloads": 19.0, 
    "downloads": 19.0, 
    "version_volume": 579561.0
  }, 
  "links": {
    "doi": "https://doi.org/10.5281/zenodo.4034438", 
    "conceptdoi": "https://doi.org/10.5281/zenodo.4034437", 
    "bucket": "https://zenodo.org/api/files/d994620c-6409-415a-9646-c179ae642fc5", 
    "conceptbadge": "https://zenodo.org/badge/doi/10.5281/zenodo.4034437.svg", 
    "html": "https://zenodo.org/record/4034438", 
    "latest_html": "https://zenodo.org/record/4034438", 
    "badge": "https://zenodo.org/badge/doi/10.5281/zenodo.4034438.svg", 
    "latest": "https://zenodo.org/api/records/4034438"
  }, 
  "conceptdoi": "10.5281/zenodo.4034437", 
  "created": "2020-09-17T11:31:42.485034+00:00", 
  "updated": "2020-09-17T12:59:31.518748+00:00", 
  "conceptrecid": "4034437", 
  "revision": 2, 
  "id": 4034438, 
  "metadata": {
    "access_right_category": "success", 
    "doi": "10.5281/zenodo.4034438", 
    "version": "1.0", 
    "contributors": [], 
    "title": "Revisiting Iso-Recursive Subtyping", 
    "license": {
      "id": "CC-BY-1.0"
    }, 
    "related_identifiers": [
      {
        "scheme": "doi", 
        "identifier": "10.5281/zenodo.4034437", 
        "relation": "isVersionOf"
      }
    ], 
    "relations": {
      "version": [
        {
          "count": 1, 
          "index": 0, 
          "parent": {
            "pid_type": "recid", 
            "pid_value": "4034437"
          }, 
          "is_last": true, 
          "last_child": {
            "pid_type": "recid", 
            "pid_value": "4034438"
          }
        }
      ]
    }, 
    "language": "eng", 
    "subjects": [], 
    "references": [], 
    "thesis": {
      "supervisors": []
    }, 
    "keywords": [], 
    "publication_date": "2020-09-17", 
    "creators": [
      {
        "affiliation": "The University of Hong Kong", 
        "name": "Zhou, Yaoda"
      }, 
      {
        "orcid": "0000-0002-8632-2291", 
        "affiliation": "The University of Hong Kong", 
        "name": "Dos Santos Oliveira, Bruno Cesar"
      }, 
      {
        "affiliation": "The University of Hong Kong", 
        "name": "Zhao, Jinxu"
      }
    ], 
    "access_right": "open", 
    "resource_type": {
      "type": "software", 
      "title": "Software"
    }, 
    "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>"
  }
}
71
19
views
downloads
All versions This version
Views 7171
Downloads 1919
Data volume 579.6 kB579.6 kB
Unique views 6868
Unique downloads 1616

Share

Cite as