2018
DOI: 10.1145/3236773
|View full text |Cite
|
Sign up to set email alerts
|

Mtac2: typed tactics for backward reasoning in Coq

Abstract: Coq supports a range of built-in tactics, which are engineered primarily to support backward reasoning. Starting from a desired goal, the Coq programmer can use these tactics to manipulate the proof state interactively, applying axioms or lemmas to break the goal into subgoals until all subgoals have been solved. Additionally, it provides support for tactic programming via OCaml and Ltac, so that users can roll their own custom proof automation routines. Unfortunately, though, these tactic languages share a si… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
12
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 18 publications
(12 citation statements)
references
References 25 publications
0
12
0
Order By: Relevance
“…Inspired by Mtac [19,36] and MetaCoq [2], FreeSpec.Exec is a bi-interpreter, i.e., an interpreter that interleaves two interpreters. One of these two interpreters is the reduction engine of Coq: when it is provided a term of type impure ix t, this interpreter makes the head constructor appear using the weak-head reduction strategy.…”
Section: Methodsmentioning
confidence: 99%
“…Inspired by Mtac [19,36] and MetaCoq [2], FreeSpec.Exec is a bi-interpreter, i.e., an interpreter that interleaves two interpreters. One of these two interpreters is the reduction engine of Coq: when it is provided a term of type impure ix t, this interpreter makes the head constructor appear using the weak-head reduction strategy.…”
Section: Methodsmentioning
confidence: 99%
“…We can also reason about formal systems in general purpose proof assistants such as Coq. The general philosophy in such systems is that users should be in the position of writing complex domain-specific tactics to facilitate proof construction using languages such as LTac [7] or MTac(2) [29,17]. Although this is an extremely flexible approach, we believe that the tactic-centric view often obscures the actual line of reasoning in the proof.…”
Section: Related Workmentioning
confidence: 99%
“…An interpreter for actions in this monad (e.g. adding a new definition with a given name and proof term) is meta-programmed in OCAML, using continuations to handle the interactive aspect of execution and maintaining coherence of the system state, similarly to the proof engine monad of the MTAC2 [29] tactic language.…”
Section: The Template Monadmentioning
confidence: 99%