Generalization in the presence of free variables: A mechanically-checked correctness proof for one algorithm

We present a case study in which an automated proof assistant was used to show the correctness of an algorithm. Specifically, we document the application of an extension of the Boyer-Moore Theorem Prover to the problem of verifying the correctness of an implementation of generalization, where the proof had surprisingly many details and a previous implementation contained an error. We attempt to provide sufficient detail so that the reader can gain a realistic impression of the nature of this exercise.

[1]  Robert S. Boyer,et al.  Functional Instantiation in First-Order Logic , 1991, Artificial and Mathematical Theory of Computation.

[2]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[3]  Richard W. Weyhrauch,et al.  Prolegomena to a theory of formal reasoning , 1978 .

[4]  Guy L. Steele,et al.  Common Lisp the Language , 1984 .

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

[6]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

[7]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[8]  A. I. Kostrikin Proof of the Main Theorem , 1990 .

[9]  G. L. Steele Common Lisp , 1990 .

[10]  Robert S. Boyer,et al.  Integrating decision procedures into heuristic theorem provers: a case study of linear arithmetic , 1988 .

[11]  Maurizio Rafanelli,et al.  Basic Notions , 2019, Multidimensional Databases.

[12]  Matt Kaufmann An Interactive Enhancement to the Boyer-Moore Theorem Prover , 1988, CADE.

[13]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.

[14]  Douglas J. Howe Computational Metatheory in Nuprl , 1988, CADE.

[15]  Robert L. Constable,et al.  Formalized Metareasoning in Type Theory , 1986, LICS.

[16]  D. Mccomb,et al.  Terms , 2007, Semantics in Business Systems.

[17]  Robert S. Boyer,et al.  Metafunctions: Proving Them Correct and Using Them Efficiently as New Proof Procedures. , 1979 .

[18]  Matt Kaufmann,et al.  DEFN-SK: An Extension of the Boyer-Moore Theorem Prover to Handle First-Order Quantifiers ***DRAFT*** , 1989 .

[19]  J Strother Moore System verification , 2004, Journal of Automated Reasoning.

[20]  J. Schwartz,et al.  Metamathematical extensibility for theorem verifiers and proof-checkers☆ , 1979 .

[21]  Yuan Yu,et al.  Computer proofs in Group Theory , 1990, Journal of Automated Reasoning.

[22]  Robert S. Boyer,et al.  The Correctness Problem in Computer Science , 1982 .

[23]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

[24]  Natarajan Shankar,et al.  Towards mechanical metamathematics , 1985, Journal of Automated Reasoning.

[25]  Robin Milner,et al.  Edinburgh LCF , 1979, Lecture Notes in Computer Science.