Software Open Access
Zhou, Yaoda;
Dos Santos Oliveira, Bruno Cesar;
Zhao, Jinxu
<?xml version='1.0' encoding='UTF-8'?> <record xmlns="http://www.loc.gov/MARC21/slim"> <leader>00000nmm##2200000uu#4500</leader> <datafield tag="041" ind1=" " ind2=" "> <subfield code="a">eng</subfield> </datafield> <controlfield tag="005">20200917125931.0</controlfield> <controlfield tag="001">4034438</controlfield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">The University of Hong Kong</subfield> <subfield code="0">(orcid)0000-0002-8632-2291</subfield> <subfield code="a">Dos Santos Oliveira, Bruno Cesar</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">The University of Hong Kong</subfield> <subfield code="a">Zhao, Jinxu</subfield> </datafield> <datafield tag="856" ind1="4" ind2=" "> <subfield code="s">1066</subfield> <subfield code="z">md5:a21c59d0814e1e02c396f0751564482a</subfield> <subfield code="u">https://zenodo.org/record/4034438/files/MIT License</subfield> </datafield> <datafield tag="856" ind1="4" ind2=" "> <subfield code="s">113468</subfield> <subfield code="z">md5:29eae91a6a0e0daf0055dd4077992c13</subfield> <subfield code="u">https://zenodo.org/record/4034438/files/OOPSLA2020-artifact.zip</subfield> </datafield> <datafield tag="856" ind1="4" ind2=" "> <subfield code="s">165</subfield> <subfield code="z">md5:0aa23aa308584f80dd0dea5237308936</subfield> <subfield code="u">https://zenodo.org/record/4034438/files/readme</subfield> </datafield> <datafield tag="542" ind1=" " ind2=" "> <subfield code="l">open</subfield> </datafield> <datafield tag="260" ind1=" " ind2=" "> <subfield code="c">2020-09-17</subfield> </datafield> <datafield tag="909" ind1="C" ind2="O"> <subfield code="p">software</subfield> <subfield code="o">oai:zenodo.org:4034438</subfield> </datafield> <datafield tag="100" ind1=" " ind2=" "> <subfield code="u">The University of Hong Kong</subfield> <subfield code="a">Zhou, Yaoda</subfield> </datafield> <datafield tag="245" ind1=" " ind2=" "> <subfield code="a">Revisiting Iso-Recursive Subtyping</subfield> </datafield> <datafield tag="540" ind1=" " ind2=" "> <subfield code="u">https://creativecommons.org/licenses/by/1.0/legalcode</subfield> <subfield code="a">Creative Commons Attribution 1.0 Generic</subfield> </datafield> <datafield tag="650" ind1="1" ind2="7"> <subfield code="a">cc-by</subfield> <subfield code="2">opendefinition.org</subfield> </datafield> <datafield tag="520" ind1=" " ind2=" "> <subfield code="a"><p>The Amber rules are well-known and widely used for subtyping</p> <p>iso-recursive types. They were first briefly and informally introduced</p> <p>in 1985 by Cardelli in a manuscript describing the Amber</p> <p>language.</p> <p>Despite their use over many years, important aspects of the metatheory of the iso-recursive</p> <p>style Amber rules have not been studied in depth or turn out to be</p> <p>quite challenging to formalize.</p> <p>&nbsp;</p> <p>This paper aims to revisit the problem of subtyping iso-recursive</p> <p>types. We start by introducing a novel declarative specification</p> <p>that we believe captures the ``spirit&#39;&#39; of Amber-style</p> <p>iso-recursive subtyping. Informally, the specification states that</p> <p>two recursive types are subtypes \emph{if all their finite</p> <p>unfoldings are subtypes}. The Amber rules are shown to be sound</p> <p>with respect to this declarative specification. We then derive a</p> <p>\emph{sound}, \emph{complete} and \emph{decidable} algorithmic</p> <p>formulation of subtyping that employs a novel \emph{double</p> <p>unfolding} rule. Compared to the Amber rules, the double</p> <p>unfolding rule has the advantage of: 1) being modular; 2)</p> <p>not requiring reflexivity to be built in; and 3) leading to</p> <p>an easy proof of transitivity of subtyping. This work</p> <p>sheds new insights on the theory of subtyping iso-recursive types,</p> <p>and the new double unfolding rule has important advantages over</p> <p>the original Amber rules for both implementations and</p> <p>metatheoretical studies involving recursive types. All results</p> <p>are mechanically formalized in the Coq theorem prover. As far as</p> <p>we know, this is the first comprehensive treatment of iso-recursive</p> <p>subtyping dealing with unrestricted recursive types in a theorem prover.</p></subfield> </datafield> <datafield tag="773" ind1=" " ind2=" "> <subfield code="n">doi</subfield> <subfield code="i">isVersionOf</subfield> <subfield code="a">10.5281/zenodo.4034437</subfield> </datafield> <datafield tag="024" ind1=" " ind2=" "> <subfield code="a">10.5281/zenodo.4034438</subfield> <subfield code="2">doi</subfield> </datafield> <datafield tag="980" ind1=" " ind2=" "> <subfield code="a">software</subfield> </datafield> </record>
All versions | This version | |
---|---|---|
Views | 70 | 70 |
Downloads | 19 | 19 |
Data volume | 579.6 kB | 579.6 kB |
Unique views | 67 | 67 |
Unique downloads | 16 | 16 |