论文标题
关于同学和等值类型的语义表达性
On the Semantic Expressiveness of Iso- and Equi-Recursive Types
论文作者
论文摘要
递归类型扩展了简单的Lambda演算(STLC),具有额外的表达能力,以启用分歧计算并编码递归数据类型(例如,列表)。存在递归类型的两种表述:ISO恢复和等高的恢复。当涉及到类型推导时,ISO和Equi-Recursion的相对优势得到了充分研究。但是,到目前为止,这两种配方的相对语义表达尚不清楚。本文研究了STLC的语义表达性,具有同等和等值的类型,证明这些配方具有同样的表达性。实际上,我们证明它们都像STLC一样具有术语级别的递归。我们用这三种语言之间的三个规范编译器(具有等值类型的ISO-,具有等级级别的递归)的三个规范编译器的完全抽象来表达这些表达性。我们对语言的选择使我们可以在与简单类型和递归类型的界面进行互动时研究表现力。这三个证明都依赖于称为近似反向翻译的证明技术的打字版本。总之,我们的结果表明,具有等值和等值类型的STLC之间的语义表达性没有差异。在本文中,我们专注于一个简单的设置,但我们相信我们的结果比例比系统F。
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.