Proof by computation in the Coq system
Theoretical Computer Science - Special issue on theories of types and proofs
Using Reflection to Build Efficient and Certified Decision Procedures
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
Computational Metatheory in Nuprl
Proceedings of the 9th International Conference on Automated Deduction
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Changing Data Structures in Type Theory: A Study of Natural Numbers
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
Explicit convertibility proofs in pure type systems
Proceedings of the Eighth ACM SIGPLAN international workshop on Logical frameworks & meta-languages: theory & practice
Hi-index | 0.00 |
We modify the reflection method to enable it to deal with partial functions like division. The idea behind reflection is to program a tactic for a theorem prover not in the implementation language but in the object language of the theorem prover itself. The main ingredients of the reflection method are a syntactic encoding of a class of problems, an interpretation function (mapping the encoding to the problem) and a decision function, written on the encodings. Together with a correctness proof of the decision function, this gives a fast method for solving problems. The contribution of this work lies in the extension of the reflection method to deal with equations in algebraic structures where some functions may be partial. The primary example here is the theory of flelds. For the reflection method, this yields the problem that the interpretation function is not total. In this paper we show how this can be overcome by defining the interpretation as a relation. We give the precise details, both in mathematical terms and in Coq syntax. It has been used to program our own tactic 'Rational', for verifying equations between field elements.