A framework for defining logics
Journal of the ACM (JACM)
Metalogical Frameworks II: Developing a Reflected Decision Procedure
Journal of Automated Reasoning
Journal of Automated Reasoning
Higher-Order Abstract Syntax with Induction in Coq
LPAR '94 Proceedings of the 5th International Conference on Logic Programming and Automated Reasoning
Sequent Schema for Derived Rules
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Recursion over objects of functional type
Mathematical Structures in Computer Science
A computational approach to reflective meta-reasoning about languages with bindings
Proceedings of the 3rd ACM SIGPLAN workshop on Mechanized reasoning about languages with variable binding
Implementing reflection in nuprl
Implementing reflection in nuprl
Mechanized meta-reasoning using a hybrid HOAS/de bruijn representation and reflection
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Essential incompleteness of arithmetic verified by coq
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Hi-index | 0.00 |
It is well-known that adding reflective reasoning can tremendously increase the power of a proof assistant. In order for this theoretical increase of power to become accessible to users in practice, the proof assistant needs to provide a great deal of infrastructure to support reflective reasoning. In this paper we explore the problem of creating a practical implementation of such a support layer. Our implementation takes a specification of a logical theory (which is identical to how it would be specified if we were simply going to reason within this logical theory, instead of reflecting it) and automatically generates the necessary definitions, lemmas, and proofs that are needed to enable the reflected meta-reasoning in the provided theory. One of the key features of our approach is that the structure of a logic is preserved when it is reflected. In particular, all variables, including meta-variables, are preserved in the reflected representation. This also allows the preservation of proof automation-there is a structure-preserving one-to-one map from proof steps in the original logic to proof step in the reflected logic. To enable reasoning about terms with sequent context variables, we develop a principle for context induction, called teleportation. This work is fully implemented in the MetaPRL theorem prover.