Software Open Access
Zhou, Yaoda;
Dos Santos Oliveira, Bruno Cesar;
Zhao, Jinxu
{ "publisher": "Zenodo", "DOI": "10.5281/zenodo.4034438", "language": "eng", "title": "Revisiting Iso-Recursive Subtyping", "issued": { "date-parts": [ [ 2020, 9, 17 ] ] }, "abstract": "<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>", "author": [ { "family": "Zhou, Yaoda" }, { "family": "Dos Santos Oliveira, Bruno Cesar" }, { "family": "Zhao, Jinxu" } ], "version": "1.0", "type": "article", "id": "4034438" }
All versions | This version | |
---|---|---|
Views | 69 | 69 |
Downloads | 19 | 19 |
Data volume | 579.6 kB | 579.6 kB |
Unique views | 66 | 66 |
Unique downloads | 16 | 16 |