Software Open Access

Revisiting Iso-Recursive Subtyping

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


DataCite XML Export

<?xml version='1.0' encoding='utf-8'?>
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.1/metadata.xsd">
  <identifier identifierType="DOI">10.5281/zenodo.4034438</identifier>
  <creators>
    <creator>
      <creatorName>Zhou, Yaoda</creatorName>
      <givenName>Yaoda</givenName>
      <familyName>Zhou</familyName>
      <affiliation>The University of Hong Kong</affiliation>
    </creator>
    <creator>
      <creatorName>Dos Santos Oliveira, Bruno Cesar</creatorName>
      <givenName>Bruno Cesar</givenName>
      <familyName>Dos Santos Oliveira</familyName>
      <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="http://orcid.org/">0000-0002-8632-2291</nameIdentifier>
      <affiliation>The University of Hong Kong</affiliation>
    </creator>
    <creator>
      <creatorName>Zhao, Jinxu</creatorName>
      <givenName>Jinxu</givenName>
      <familyName>Zhao</familyName>
      <affiliation>The University of Hong Kong</affiliation>
    </creator>
  </creators>
  <titles>
    <title>Revisiting Iso-Recursive Subtyping</title>
  </titles>
  <publisher>Zenodo</publisher>
  <publicationYear>2020</publicationYear>
  <dates>
    <date dateType="Issued">2020-09-17</date>
  </dates>
  <language>en</language>
  <resourceType resourceTypeGeneral="Software"/>
  <alternateIdentifiers>
    <alternateIdentifier alternateIdentifierType="url">https://zenodo.org/record/4034438</alternateIdentifier>
  </alternateIdentifiers>
  <relatedIdentifiers>
    <relatedIdentifier relatedIdentifierType="DOI" relationType="IsVersionOf">10.5281/zenodo.4034437</relatedIdentifier>
  </relatedIdentifiers>
  <version>1.0</version>
  <rightsList>
    <rights rightsURI="https://creativecommons.org/licenses/by/1.0/legalcode">Creative Commons Attribution 1.0 Generic</rights>
    <rights rightsURI="info:eu-repo/semantics/openAccess">Open Access</rights>
  </rightsList>
  <descriptions>
    <description descriptionType="Abstract">&lt;p&gt;The Amber rules are well-known and widely used for subtyping&lt;/p&gt;

&lt;p&gt;iso-recursive types. They were first briefly and informally introduced&lt;/p&gt;

&lt;p&gt;in 1985 by Cardelli in a manuscript describing the Amber&lt;/p&gt;

&lt;p&gt;language.&lt;/p&gt;

&lt;p&gt;Despite their use over many years, important aspects of the metatheory of the iso-recursive&lt;/p&gt;

&lt;p&gt;style Amber rules have not been studied in depth or turn out to be&lt;/p&gt;

&lt;p&gt;quite challenging to formalize.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;This paper aims to revisit the problem of subtyping iso-recursive&lt;/p&gt;

&lt;p&gt;types. We start by introducing a novel declarative specification&lt;/p&gt;

&lt;p&gt;that we believe captures the ``spirit&amp;#39;&amp;#39; of Amber-style&lt;/p&gt;

&lt;p&gt;iso-recursive subtyping. Informally, the specification states that&lt;/p&gt;

&lt;p&gt;two recursive types are subtypes \emph{if all their finite&lt;/p&gt;

&lt;p&gt;unfoldings are subtypes}. The Amber rules are shown to be sound&lt;/p&gt;

&lt;p&gt;with respect to this declarative specification. We then derive a&lt;/p&gt;

&lt;p&gt;\emph{sound}, \emph{complete} and \emph{decidable} algorithmic&lt;/p&gt;

&lt;p&gt;formulation of subtyping that employs a novel \emph{double&lt;/p&gt;

&lt;p&gt;unfolding} rule. Compared to the Amber rules, the double&lt;/p&gt;

&lt;p&gt;unfolding rule has the advantage of: 1) being modular; 2)&lt;/p&gt;

&lt;p&gt;not requiring reflexivity to be built in; and 3) leading to&lt;/p&gt;

&lt;p&gt;an easy proof of transitivity of subtyping. This work&lt;/p&gt;

&lt;p&gt;sheds new insights on the theory of subtyping iso-recursive types,&lt;/p&gt;

&lt;p&gt;and the new double unfolding rule has important advantages over&lt;/p&gt;

&lt;p&gt;the original Amber rules for both implementations and&lt;/p&gt;

&lt;p&gt;metatheoretical studies involving recursive types. All results&lt;/p&gt;

&lt;p&gt;are mechanically formalized in the Coq theorem prover. As far as&lt;/p&gt;

&lt;p&gt;we know, this is the first comprehensive treatment of iso-recursive&lt;/p&gt;

&lt;p&gt;subtyping dealing with unrestricted recursive types in a theorem prover.&lt;/p&gt;</description>
  </descriptions>
</resource>
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