Software Open Access
Zhou, Yaoda;
Dos Santos Oliveira, Bruno Cesar;
Zhao, Jinxu
{ "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> </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'' 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>" } }
All versions | This version | |
---|---|---|
Views | 71 | 71 |
Downloads | 19 | 19 |
Data volume | 579.6 kB | 579.6 kB |
Unique views | 68 | 68 |
Unique downloads | 16 | 16 |