In this paper, we study strong normalization of a core language based on System F-omega which supports programming with finite and infinite structures. Finite data such as finite lists and trees is defined via constructors and manipulated via pattern matching, while infinite data such as streams and infinite trees is defined by observations and synthesized via copattern matching. Taking a type-based approach to strong normalization, we track size information about finite and infinite data in the type. We exploit the duality of pattern and copatterns to give a unifying semantic framework which allows us to elegantly and uniformly support both well-founded induction and coinduction by rewriting. The strong normalization proof is structured around Girard's reducibility candidates. As such, our system allows for non determinism and does not rely on coverage. Since System F-omega is general enough that it can be the target of compilation for the Calculus of Constructions, this work is a significant step towards representing observation-based infinite data in proof assistants such as Coq and Agda.
在本文中,我们研究了基于系统F-OMEGA的核心语言的强范围,该系统支持有限和无限结构的编程。有限数据(例如有限列表和树木)是通过构造函数定义的,并通过模式匹配来操纵,而无限数据(例如流和无限树)是由观测来定义的,并通过Copatersn匹配构成。采用基于类型的方法进行强归一化的方法,我们跟踪有关类型中有限和无限数据的尺寸信息。我们利用模式和复合图案的二元性来提供一个统一的语义框架,使我们能够优雅而均匀地支持有充分根据的诱导和通过重写来诱导。强有力的标准化是围绕吉拉德(Girard)的可还原性候选者进行的。因此,我们的系统允许非决定论,并且不依赖覆盖范围。由于系统F-OMEGA足够通用,因此可以成为构造计算的汇编的目标,因此这项工作是代表COQ和AGDA等证明助手中基于观察的无限数据迈出的重要一步。