Mtac: a monad for typed tactic programming in Coq

  • Authors:
  • Beta Ziliani;Derek Dreyer;Neelakantan R. Krishnaswami;Aleksandar Nanevski;Viktor Vafeiadis

  • Affiliations:
  • MPI-SWS, Saarbruecken, Germany;MPI-SWS, Saarbruecken, Germany;MPI-SWS, Saarbruecken, Germany;IMDEA Software Institute, Madrid, Spain;MPI-SWS, Kaiserslautern, Germany

  • Venue:
  • Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

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.