Recursive types extend the simply-typed lambda calculus (STLC) with the additional expressive power to enable diverging computation and to encode recursive data-types (e.g., lists). Two formulations of recursive types exist: iso-recursive and equi-recursive. The relative advantages of iso- and equi-recursion are well-studied when it comes to their impact on type-inference. However, the relative semantic expressiveness of the two formulations remains unclear so far.
This paper studies the semantic expressiveness of STLC with iso- and equi-recursive types, proving that these formulations are equally expressive. In fact, we prove that they are both as expressive as STLC with only term-level recursion. We phrase these equi-expressiveness results in terms of full abstraction of three canonical compilers between these three languages (STLC with iso-, with equi-recursive types and with term-level recursion). Our choice of languages allows us to study expressiveness when interacting over both a simply-typed and a recursively-typed interface. The three proofs all rely on a typed version of a proof technique called approximate backtranslation.
Together, our results show that there is no difference in semantic expressiveness between STLCs with iso- and equi-recursive types. In this paper, we focus on a simply-typed setting but we believe our results scale to more powerful type systems like System F.
Thu 16 JunDisplayed time zone: Pacific Time (US & Canada) change
13:30 - 14:50 | |||
13:30 20mTalk | (ICFP 2020) Kinds Are Calling Conventions SIGPLAN Track Paul Downen University of Massachusetts Lowell, Zena M. Ariola University of Oregon, Simon Peyton Jones Microsoft Research, Richard A. Eisenberg Tweag Link to publication DOI Authorizer link Pre-print | ||
13:50 20mTalk | (OOPSLA 2021) Study of the subtyping machine of nominal subtyping with variance SIGPLAN Track Ori Roth Technion Link to publication DOI Authorizer link Pre-print | ||
14:10 20mTalk | (POPL 2021) Fully Abstract from Static to Gradual SIGPLAN Track | ||
14:30 20mTalk | (POPL 2021) On the Semantic Expressiveness of Recursive Types SIGPLAN Track |