Software Open Access

Revisiting Iso-Recursive Subtyping

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


DCAT Export

<?xml version='1.0' encoding='utf-8'?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:adms="http://www.w3.org/ns/adms#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:dctype="http://purl.org/dc/dcmitype/" xmlns:dcat="http://www.w3.org/ns/dcat#" xmlns:duv="http://www.w3.org/ns/duv#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:frapo="http://purl.org/cerif/frapo/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:gsp="http://www.opengis.net/ont/geosparql#" xmlns:locn="http://www.w3.org/ns/locn#" xmlns:org="http://www.w3.org/ns/org#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:prov="http://www.w3.org/ns/prov#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#">
  <rdf:Description rdf:about="https://doi.org/10.5281/zenodo.4034438">
    <rdf:type rdf:resource="http://www.w3.org/ns/dcat#Dataset"/>
    <dct:type rdf:resource="http://purl.org/dc/dcmitype/Software"/>
    <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://doi.org/10.5281/zenodo.4034438</dct:identifier>
    <foaf:page rdf:resource="https://doi.org/10.5281/zenodo.4034438"/>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Zhou, Yaoda</foaf:name>
        <foaf:givenName>Yaoda</foaf:givenName>
        <foaf:familyName>Zhou</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>The University of Hong Kong</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description rdf:about="http://orcid.org/0000-0002-8632-2291">
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0000-0002-8632-2291</dct:identifier>
        <foaf:name>Dos Santos Oliveira, Bruno Cesar</foaf:name>
        <foaf:givenName>Bruno Cesar</foaf:givenName>
        <foaf:familyName>Dos Santos Oliveira</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>The University of Hong Kong</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Zhao, Jinxu</foaf:name>
        <foaf:givenName>Jinxu</foaf:givenName>
        <foaf:familyName>Zhao</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>The University of Hong Kong</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:title>Revisiting Iso-Recursive Subtyping</dct:title>
    <dct:publisher>
      <foaf:Agent>
        <foaf:name>Zenodo</foaf:name>
      </foaf:Agent>
    </dct:publisher>
    <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#gYear">2020</dct:issued>
    <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2020-09-17</dct:issued>
    <dct:language rdf:resource="http://publications.europa.eu/resource/authority/language/ENG"/>
    <owl:sameAs rdf:resource="https://zenodo.org/record/4034438"/>
    <adms:identifier>
      <adms:Identifier>
        <skos:notation rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://zenodo.org/record/4034438</skos:notation>
        <adms:schemeAgency>url</adms:schemeAgency>
      </adms:Identifier>
    </adms:identifier>
    <dct:isVersionOf rdf:resource="https://doi.org/10.5281/zenodo.4034437"/>
    <owl:versionInfo>1.0</owl:versionInfo>
    <dct:description>&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;</dct:description>
    <dct:accessRights rdf:resource="http://publications.europa.eu/resource/authority/access-right/PUBLIC"/>
    <dct:accessRights>
      <dct:RightsStatement rdf:about="info:eu-repo/semantics/openAccess">
        <rdfs:label>Open Access</rdfs:label>
      </dct:RightsStatement>
    </dct:accessRights>
    <dcat:distribution>
      <dcat:Distribution>
        <dct:license rdf:resource="https://creativecommons.org/licenses/by/1.0/legalcode"/>
        <dcat:accessURL rdf:resource="https://doi.org/10.5281/zenodo.4034438"/>
      </dcat:Distribution>
    </dcat:distribution>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL rdf:resource="https://doi.org/10.5281/zenodo.4034438"/>
        <dcat:byteSize>1066</dcat:byteSize>
        <dcat:downloadURL rdf:resource="https://zenodo.org/record/4034438/files/MIT License"/>
      </dcat:Distribution>
    </dcat:distribution>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL rdf:resource="https://doi.org/10.5281/zenodo.4034438"/>
        <dcat:byteSize>113468</dcat:byteSize>
        <dcat:downloadURL rdf:resource="https://zenodo.org/record/4034438/files/OOPSLA2020-artifact.zip"/>
        <dcat:mediaType>application/zip</dcat:mediaType>
      </dcat:Distribution>
    </dcat:distribution>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL rdf:resource="https://doi.org/10.5281/zenodo.4034438"/>
        <dcat:byteSize>165</dcat:byteSize>
        <dcat:downloadURL rdf:resource="https://zenodo.org/record/4034438/files/readme"/>
      </dcat:Distribution>
    </dcat:distribution>
  </rdf:Description>
</rdf:RDF>
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