Full Iso-Recursive Types

There are two well-known formulations of recursive types: iso-recursive and equi-recursive types. Abadi and Fiore [LICS 1996] have shown that iso- and equi-recursive types have the same expressive power. However, their encoding of equi-recursive types in terms of iso-recursive types requires explicit coercions. These coercions come with significant additional computational overhead , and complicate reasoning about the equivalence of the two formulations of recursive types. This paper proposes a generalization of iso-recursive types called full iso-recursive types. Full iso-recursive types allow encoding all programs with equi-recursive types without computational overhead. Instead of explicit term coercions, all type transformations are captured by computationally irrelevant casts, which can be erased at runtime without affecting the semantics of the program. Consequently, reasoning about the equivalence between the two approaches can be greatly simplified. We present a calculus called <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mrow> <mml:msubsup> <mml:mi>λ</mml:mi> <mml:mrow> <mml:mi>F</mml:mi> <mml:mi>i</mml:mi> </mml:mrow> <mml:mi>μ</mml:mi> </mml:msubsup> </mml:mrow> </mml:math> , which extends the simply typed lambda calculus (STLC) with full iso-recursive types. The <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mrow> <mml:msubsup> <mml:mi>λ</mml:mi> <mml:mrow> <mml:mi>F</mml:mi> <mml:mi>i</mml:mi> </mml:mrow> <mml:mi>μ</mml:mi> </mml:msubsup> </mml:mrow> </mml:math> calculus is proved to be type sound, and shown to have the same expressive power as a calculus with equi-recursive types. We also extend our results to subtyping, and show that equi-recursive subtyping can be expressed in terms of iso-recursive subtyping with cast operators.

Authors

Institutions

Publication Details

Journal
Proceedings of the ACM on Programming Languages
Published
2024-10-08
DOI
https://doi.org/10.1145/3689718
Citations
4
Primary Topic
Logic, programming, and type systems
Type
article
Field-Weighted Citation Impact
1.39
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Full Iso-Recursive Types

Litao Zhou, Bruno C. d. S. Oliveira, Qianyong Wan
4 citations
Proceedings of the ACM on Programming Languages
Logic, programming, and type systems
1.39
article

Full Iso-Recursive Types

Litao Zhou, Bruno C. d. S. Oliveira, Qianyong Wan
article en
4 citations

Abstract

There are two well-known formulations of recursive types: iso-recursive and equi-recursive types. Abadi and Fiore [LICS 1996] have shown that iso- and equi-recursive types have the same expressive power. However, their encoding of equi-recursive types in terms of iso-recursive types requires explicit coercions. These coercions come with significant additional computational overhead , and complicate reasoning about the equivalence of the two formulations of recursive types. This paper proposes a generalization of iso-recursive types called full iso-recursive types. Full iso-recursive types allow encoding all programs with equi-recursive types without computational overhead. Instead of explicit term coercions, all type transformations are captured by computationally irrelevant casts, which can be erased at runtime without affecting the semantics of the program. Consequently, reasoning about the equivalence between the two approaches can be greatly simplified. We present a calculus called <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mrow> <mml:msubsup> <mml:mi>λ</mml:mi> <mml:mrow> <mml:mi>F</mml:mi> <mml:mi>i</mml:mi> </mml:mrow> <mml:mi>μ</mml:mi> </mml:msubsup> </mml:mrow> </mml:math> , which extends the simply typed lambda calculus (STLC) with full iso-recursive types. The <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mrow> <mml:msubsup> <mml:mi>λ</mml:mi> <mml:mrow> <mml:mi>F</mml:mi> <mml:mi>i</mml:mi> </mml:mrow> <mml:mi>μ</mml:mi> </mml:msubsup> </mml:mrow> </mml:math> calculus is proved to be type sound, and shown to have the same expressive power as a calculus with equi-recursive types. We also extend our results to subtyping, and show that equi-recursive subtyping can be expressed in terms of iso-recursive subtyping with cast operators.

Proceedings of the ACM on Programming LanguagesVol. 8(OOPSLA2)
University of Hong Kong (HK)
Openalex Percentile: Top 15%
Logic, programming, and type systems
1.39
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.