Software Open Access

# Revisiting Iso-Recursive Subtyping

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

### Dublin Core Export

<?xml version='1.0' encoding='utf-8'?>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:creator>Zhou, Yaoda</dc:creator>
<dc:creator>Dos Santos Oliveira, Bruno Cesar</dc:creator>
<dc:creator>Zhao, Jinxu</dc:creator>
<dc:date>2020-09-17</dc:date>
<dc:description>The Amber rules are well-known and widely used for subtyping

iso-recursive types. They were first briefly and informally introduced

in 1985 by Cardelli in a manuscript describing the Amber

language.

Despite their use over many years, important aspects of the metatheory of the iso-recursive

style Amber rules have not been studied in depth or turn out to be

quite challenging to formalize.

This paper aims to revisit the problem of subtyping iso-recursive

types. We start by introducing a novel declarative specification

that we believe captures the spirit'' of Amber-style

iso-recursive subtyping. Informally, the specification states that

two recursive types are subtypes \emph{if all their finite

unfoldings are subtypes}. The Amber rules are shown to be sound

with respect to this declarative specification. We then derive a

\emph{sound}, \emph{complete} and \emph{decidable} algorithmic

formulation of subtyping that employs a novel \emph{double

unfolding} rule. Compared to the Amber rules, the double

unfolding rule has the advantage of: 1) being modular; 2)

not requiring reflexivity to be built in; and 3) leading to

an easy proof of transitivity of subtyping. This work

sheds new insights on the theory of subtyping iso-recursive types,

and the new double unfolding rule has important advantages over

the original Amber rules for both implementations and

metatheoretical studies involving recursive types. All results

are mechanically formalized in the Coq theorem prover. As far as

we know, this is the first comprehensive treatment of iso-recursive

subtyping dealing with unrestricted recursive types in a theorem prover.</dc:description>
<dc:identifier>https://zenodo.org/record/4034438</dc:identifier>
<dc:identifier>10.5281/zenodo.4034438</dc:identifier>
<dc:identifier>oai:zenodo.org:4034438</dc:identifier>
<dc:language>eng</dc:language>
<dc:relation>doi:10.5281/zenodo.4034437</dc:relation>
<dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
<dc:title>Revisiting Iso-Recursive Subtyping</dc:title>
<dc:type>info:eu-repo/semantics/other</dc:type>
<dc:type>software</dc:type>
</oai_dc:dc>

69
19
views