Well-founded recursion with copatterns and sized types

32Citations
Citations of this article
12Readers
Mendeley users who have this article in their library.

Abstract

In this paper, we study strong normalization of a core language based on System Fω 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 nondeterminism and does not rely on coverage. Since System Fω 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.

Cite

CITATION STYLE

APA

Abel, A., & Pientka, B. (2016). Well-founded recursion with copatterns and sized types. Journal of Functional Programming, 26. https://doi.org/10.1017/S0956796816000022

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free