DeepAI AI Chat
Log In Sign Up

Generating induction principles and subterm relations for inductive types using MetaCoq

by   Bohdan Liesnikov, et al.

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.


page 1

page 2


Countability of Inductive Types Formalized in the Object-Logic Level

The set of integer number lists with finite length, and the set of binar...

(Deep) Induction Rules for GADTs

Deep data types are those that are defined in terms of other such data t...

Flexible Coinduction in Agda

Theorem provers are tools that help users to write machine readable proo...

Inductive Reasoning for Coinductive Types

We present AlgCo (Algebraic Coinductives), a practical framework for ind...

Towards an induction principle for nested data types

A well-known problem in the theory of dependent types is how to handle s...

Types of Cost in Inductive Concept Learning

Inductive concept learning is the task of learning to assign cases to a ...

Signatures and Induction Principles for Higher Inductive-Inductive Types

Higher inductive-inductive types (HIITs) generalize inductive types of d...