Mtac: A monad for typed tactic programming in Coq

Beta Ziliani, Derek Dreyer, Neelakantan R. Krishnaswami, Aleksandar Nanevski, Viktor Vafeiadis

Research output: Contribution to journalArticlepeer-review

12 Citations (Scopus)

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.
Original languageEnglish
Article numbere12
Number of pages59
JournalJournal of Functional Programming
Volume25
Early online date24 Aug 2015
DOIs
Publication statusPublished - 2015

Fingerprint

Dive into the research topics of 'Mtac: A monad for typed tactic programming in Coq'. Together they form a unique fingerprint.

Cite this