Generating induction principles and subterm relations for inductive types using MetaCoq
Abstract
We implement three Coq plugins regarding inductive types in MetaCoq. The first plugin is a simple syntax transformation generating alternative constructors for inductive types by abstracting over concrete indices in the types of the constructors. The second plugin re-implements Coq's Scheme Induction command in MetaCoq, and extends it to nested inductive types, e.g. types like rose trees which use list in their definition, similar to the Elpi-plugin by Tassi. The third plugin implements the Derive Subterm command provided by the Equations package in MetaCoq.
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.