Elaborating Inductive Definitions and Course-of-Values Induction in Cedille
Christopher Jenkins, Colin McDonald, Aaron Stump

TL;DR
This paper introduces a datatype subsystem for Cedille that enables course-of-values induction, providing a complete translation of inductive definitions into a pure typed lambda calculus.
Contribution
It presents the first complete implementation of inductive datatypes with course-of-values induction in Cedille, a pure Curry-style type theory, with a formal elaboration to lambda calculus.
Findings
Provides a datatype subsystem with notation for inductive types
Ensures elaboration preserves type and value correctness
First complete translation of inductive definitions in a pure lambda calculus
Abstract
In the Calculus of Dependent Lambda Eliminations (CDLE), a pure Curry-style type theory, it is possible to generically {\lambda}-encode inductive datatypes which support course-of-values (CoV) induction. We present a datatype subsystem for Cedille (an implementation of CDLE) that provides this feature to programmers through convenient notation for declaring datatypes and for defining functions over them by case analysis and fixpoint-style recursion guarded by a type-based termination checker. We demonstrate that this does not require extending CDLE by showing how datatypes and functions over them elaborate to {\lambda}-encodings, and proving that this elaboration is type- and value-preserving. This datatype subsystem and elaborator are implemented in Cedille, establishing for the first time a complete translation of inductive definitions to a small pure typed {\lambda}-calculus.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Numerical Methods and Algorithms
