A modal analysis of staged computation
Journal of the ACM (JACM)
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
System Description: Twelf - A Meta-Logical Framework for Deductive Systems
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Functional runtime systems within the lambda-sigma calculus
Journal of Functional Programming
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Backtracking, interleaving, and terminating monad transformers: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Journal of Functional Programming
Towards a mechanized metatheory of standard ML
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tinycals: Step by Step Tacticals
Electronic Notes in Theoretical Computer Science (ENTCS)
A concrete framework for environment machines
ACM Transactions on Computational Logic (TOCL)
A call-by-name lambda-calculus machine
Higher-Order and Symbolic Computation
seL4: formal verification of an OS kernel
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Hiproofs: A Hierarchical Notion of Proof Tree
Electronic Notes in Theoretical Computer Science (ENTCS)
A tactic language for the system Coq
LPAR'00 Proceedings of the 7th international conference on Logic for programming and automated reasoning
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
A systematic derivation of the STG machine verified in Coq
Proceedings of the third ACM Haskell symposium on Haskell
Towards formal proof script refactoring
MKM'11 Proceedings of the 18th Calculemus and 10th international conference on Intelligent computer mathematics
Challenges and experiences in managing large-scale proofs
CICM'12 Proceedings of the 11th international conference on Intelligent Computer Mathematics
Engineering mathematics: the odd order theorem proof
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hi-index | 0.00 |
We introduce a semantic toolbox for Ltac, the tactic language of the popular Coq proof assistant. We present three formats of operational semantics, each of which has its use in the practice of tactic programming: a big-step specification in the form of natural semantics, a model of implementation in the form of an abstract machine, and a small-step characterization of computation in the form of reduction semantics. The three semantics are provably equivalent and have been obtained via off-the-shelf derivation techniques of the functional correspondence and the syntactic correspondence. We also give examples of Ltac programs and discuss some of the issues that the formal semantics help to clarify. With this work we hope to enhance the operational understanding of Ltac as well as to set up a framework to reason about Coq scripts and to build tools supporting tactic programming based on rigorous semantics.