Adding New Rules to an LCF-style Logic Implementation

Abstract By encapsulating the primitive rules of inference as the constructors of the abstract type of theorems, LCF-style systems provide a successful answer to the problem of how to soundly add derived inference rules to a theorem prover. We suggest a supplementary method which uses formal proof of program equivalence to justify the dynamic addition of new primitive rules. The method does not increase the strength of the logic; rather, it is a means of increasing the computational strength of the implementation. The method can be used to enforce rigour in the process of iteratively improving the performance of a system. This work uses first class environments, a recent addition to the SML/NJ compiler.

[1]  Richard W. Weyhrauch,et al.  Prolegomena to a Theory of Mechanized Formal Reasoning , 1980, Artif. Intell..

[2]  Neil D. Jones,et al.  Mix: A self-applicable partial evaluator for experiments in compiler generation , 1989, LISP Symb. Comput..

[3]  Matthias Felleisen,et al.  A Syntactic Theory of Sequential State , 1989, Theor. Comput. Sci..

[4]  Lawrence C. Paulson,et al.  Isabelle: The Next 700 Theorem Provers , 2000, ArXiv.

[5]  Carolyn L. Talcott,et al.  References, local variables and operational reasoning , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[6]  Solomon Feferman,et al.  Transfinite recursive progressions of axiomatic theories , 1962, Journal of Symbolic Logic.

[7]  Robert L. Constable,et al.  The semantics of reflected proof , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.