Mtac: A monad for typed tactic programming in Coq
- 24 August 2015
- journal article
- research article
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 25
Abstract
Effective support for custom proof automation is essential for large-scale interactive proof development. However, existing languages for automation via tactics either (a) provide no way to specify the behavior of tactics within the base logic of the accompanying theorem prover, or (b) rely on advanced type-theoretic machinery that is not easily integrated into established theorem provers. We present Mtac, a lightweight but powerful extension to Coq that supports dependently typed tactic programming. Mtac tactics have access to all the features of ordinary Coq programming, as well as a new set of typed tactical primitives. We avoid the need to touch the trusted kernel typechecker of Coq by encapsulating uses of these new tactical primitives in a monad , and instrumenting Coq so that it executes monadic tactics during type inference.Keywords
This publication has 40 references indexed in Scilit:
- Compositional Computational ReflectionLecture Notes in Computer Science, 2014
- Mtac2013
- The power of parameterization in coinductive proof2013
- A Machine-Checked Proof of the Odd Order Theorem2013
- Static and user-extensible proof checking2012
- seL4Communications of the ACM, 2010
- Formal verification of a realistic compilerCommunications of the ACM, 2009
- Hoare type theory, polymorphism and separationJournal of Functional Programming, 2008
- Typing algorithm in type theory with inheritance1997
- Lazy functional state threads1994