@inproceedings{c6d863dbdb334ec2bbd738d1e69dce6f,

title = "Equational reasoning via partial reflection",

abstract = "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 fields. 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 {\textquoteleft}Rational{\textquoteright}, for verifying equations between field elements.",

author = "J.H. Geuvers and F. Wiedijk and J. Zwanenburg",

year = "2000",

doi = "10.1007/3-540-44659-1_11",

language = "English",

isbn = "3-540-67863-8",

series = "Lecture Notes in Computer Science",

publisher = "Springer",

pages = "162--178",

editor = "M. Aagaard and J. Harrison",

booktitle = "Theorem Proving in Higher Order Logics (Proceedings 13th International Conference, TPHOLs 2000, Portland OR, USA, August 14-18, 2000)",

address = "Germany",

}