Equations reloaded
Abstract
Equations is a plugin for the Coq proof assistant which provides a notation for defining programs by dependent pattern-matching and well-founded recursion and derives useful proof principles for demonstrating properties about them. We present here an improved design and rewriting of its implementation that avoids the use of axioms and reliance on L tac programming, providing a feature-rich function definition package for Coq as a definitional extension to the Coq kernel. At the core of the system is a simplifier for dependent equalities that can be reused to define enhanced versions of the dependent elimination tactics of Coq, namely dependent destruction and inversion. We introduce verified optimizations of the simplifier that allow generating smaller and simpler Eqations definitions and proof terms for these tactics in general. We demonstrate the applicability of the tool on a medium-sized example of a reflective decision procedure.
Domains
Programming Languages [cs.PL]Origin | Files produced by the author(s) |
---|
Loading...