Equational Reasoning via Partial Reflection
暂无分享,去创建一个
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.
[1] J. Harrison. Metatheory and Reflection in Theorem Proving: A Survey and Critique , 1995 .
[2] Samuel Boutin,et al. Using Reflection to Build Efficient and Certified Decision Procedures , 1997, TACS.
[3] Gilles Barthe,et al. A Two-Level Approach Towards Lean Proof-Checking , 1995, TYPES.
[4] Hugo Herbelin,et al. The Coq proof assistant : reference manual, version 6.1 , 1997 .
[5] Douglas J. Howe. Computational Metatheory in Nuprl , 1988, CADE.