Generating induction principles and subterm relations for inductive types using MetaCoq

06/25/2020 ∙ by Bohdan Liesnikov, et al. ∙ 0

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.



There are no comments yet.


page 1

page 2

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.


  • [1] Abhishek Anand, Simon Boulier, Cyril Cohen, Matthieu Sozeau, and Nicolas Tabareau. Towards certified meta-programming with typed Template-Coq. In ITP 2018. Springer.
  • [2] Arthur Azevedo de Amorim. Deriving instances with dependent types. CoqPL 2020.
  • [3] Matthieu Sozeau, Abhishek Anand, Simon Boulier, Cyril Cohen, Yannick Forster, Fabian Kunze, Gregory Malecha, Nicolas Tabareau, and Théo Winterhalter. The MetaCoq Project.

    Journal of Automated Reasoning

    , February 2020.
  • [4] Matthieu Sozeau, Simon Boulier, Yannick Forster, Nicolas Tabareau, and Théo Winterhalter. Coq Coq correct! verification of type checking and erasure for Coq, in Coq. Proceedings of the ACM on Programming Languages, 4(POPL):1–28, 2019.
  • [5] Matthieu Sozeau and Cyprien Mangin. Equations reloaded: high-level dependently-typed functional programming and proving in coq. PACMPL, 3(ICFP), 2019.
  • [6] Enrico Tassi. Deriving Proved Equality Tests in Coq-Elpi: Stronger Induction Principles for Containers in Coq. In ITP 2019, LIPIcs, Dagstuhl, Germany, 2019.