Software Open Access

Revisiting Iso-Recursive Subtyping

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

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.

Files (114.7 kB)
Name Size
MIT License
md5:a21c59d0814e1e02c396f0751564482a
1.1 kB Download
OOPSLA2020-artifact.zip
md5:29eae91a6a0e0daf0055dd4077992c13
113.5 kB Download
readme
md5:0aa23aa308584f80dd0dea5237308936
165 Bytes Download
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