Skip to main content
QUICK REVIEW

[论文解读] Ramified Structural Recursion and Corecursion

Norman Danner, James S. Royer|arXiv (Cornell University)|Jan 22, 2012
Logic, programming, and type systems参考文献 4被引用 3
一句话总结

本文提出了 RS₁,这是一种贝尔南蒂-库克风格的带类型编程形式系统,通过分层结构递归与共递归,支持对归纳数据(如列表、树)和共归纳共数据(如流、无限树)的可行多项式时间计算。通过采用结构共享与记忆化机制,RS₁ 确保了多项式时间复杂度的运行时,并通过类型限制刻画了 ω-正则语言和对数空间流等复杂度类。

ABSTRACT

We investigate feasible computation over a fairly general notion of data and codata. Specifically, we present a direct Bellantoni-Cook-style normal/safe typed programming formalism, RS1, that expresses feasible structural recursions and corecursions over data and codata specified by polynomial functors. (Lists, streams, finite trees, infinite trees, etc. are all directly definable.) A novel aspect of RS1 is that it embraces structure-sharing as in standard functional-programming implementations. As our data representations use sharing, our implementation of structural recursions are memoized to avoid the possibly exponentially-many repeated subcomputations a naive implementation might perform. We introduce notions of size for representations of data (accounting for sharing) and codata (using ideas from type-2 computational complexity) and establish that type-level 1 RS1-functions have polynomial-bounded runtimes and satisfy a polynomial-time completeness condition. Also, restricting RS1 terms to particular types produces characterizations of some standard complexity classes (e.g., omega-regular languages, linear-space functions) and some less-standard classes (e.g., log-space streams).

研究动机与目标

  • 开发一个适用于一般数据与共数据(包括流和无限树等无限结构)的可行计算框架。
  • 将贝尔南蒂-库克风格的正常/安全分层机制扩展至递归与共递归,以实现类型级别 1 的计算。
  • 在数据表示中引入结构共享,通过记忆化避免指数级重复计算。
  • 为 RS₁ 在多项式函子(如列表、流、有限/无限树)上建立多项式时间的正确性与完备性。
  • 通过 RS₁ 项的类型限制,刻画标准与非标准复杂度类(如 ω-正则语言、对数空间流)。

提出的方法

  • RS₁ 通过扩展用于归纳数据结构递归的基础系统 S⁻,再应用分层正常/安全类型系统,得到 RS⁻₁。
  • 通过共递归扩展 S 将系统推广至共数据,对共递归构造应用分层机制以确保复杂度界限。
  • RS₁ 的数据表示原生支持结构共享,支持通过记忆化实现的高效求值,避免重复子计算。
  • 为数据(考虑共享)与共数据(使用类型 2 复杂度思想)定义大小度量,从二阶多项式推导出多项式堆空间界限。
  • 通过多项式堆空间有界性定理,证明 RS₁ 中类型级别 1 的函数具有多项式有界运行时间。
  • 通过将 RS₁ 项限制于特定类型(如通过单位 → 流函数刻画 ω-正则语言),实现复杂度类的刻画。

实验结果

研究问题

  • RQ1是否存在一种统一的形式系统,能够通过结构递归与共递归支持有限数据与无限共数据的可行计算?
  • RQ2数据表示中的结构共享如何影响运行时间复杂度与实现效率?
  • RQ3是否可以在类型系统中结合分层递归与共递归,以确保多项式时间复杂度界限?
  • RQ4通过限制 RS₁ 中的类型,可以刻画哪些复杂度类?它们与已知复杂度类相比有何异同?
  • RQ5RS₁ 对共享的处理方式与 Pola 等禁止共享的系统相比有何差异?

主要发现

  • RS₁ 通过基于二阶多项式的多项式堆空间有界性定理,确保所有类型级别 1 函数的运行时间均为多项式有界。
  • 该系统通过多项式函子直接支持列表、流、有限与无限树的定义,结构共享支持高效、记忆化的求值。
  • 当限制于基本类型时,RS₁ 将 ω-正则语言刻画为类型为 unit → stream 的函数。
  • 对数空间流通过将 RS₁ 限制于涉及自然数计数器类型(nat)的类型来捕获,与双排序复杂度刻画一致。
  • 线性空间流函数通过将 RS₁ 中类型为 stream → stream 的函数(当 nat 作为基本类型包含时)进行刻画。
  • 该形式系统为数据与共数据上的安全函数提供了在复杂度理论意义上保守的扩展,对大小与观测大小均给出界限。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。