Case Studies in Meta-Level Theorem Proving

We describe an extension of the PVS system that provides a reasonably efficient and practical notion of reflection and thus allows for soundly adding formalized and verified new proof procedures. These proof procedures work on representations of a part of the underlying logic and their correctness is expressed at the object level using a computational reflection function. The implementation of the PVS system has been extended with an efficient evaluation mechanism, since the practicality of the approach heavily depends on careful engineering of the core system, including efficient normalization of functional expressions. We exemplify the process of applying meta-level proof procedures with a detailed description of the encoding of cancellation in commutative monoids and of the kernel of a BDD package.

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

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

[3]  J. Harrison Metatheory and Reflection in Theorem Proving: A Survey and Critique , 1995 .

[4]  Mandayam K. Srivas,et al.  A Tutorial Introduction to PVS , 1998 .

[5]  Robert L. Constable,et al.  Metalogical frameworks , 1993 .

[6]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

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

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

[9]  Samuel Boutin Using Reeection to Build Eecient and Certiied Decision Procedures , 1997 .

[10]  Paul Pettersson,et al.  Tools and Algorithms for the Construction and Analysis of Systems: 28th International Conference, TACAS 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Munich, Germany, April 2–7, 2022, Proceedings, Part II , 1998, TACAS.

[11]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[12]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[13]  Lawrence C. Paulson,et al.  Logic and computation - interactive proof with Cambridge LCF , 1987, Cambridge tracts in theoretical computer science.

[14]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[15]  Douglas James Howe Automating reasoning in an implementation of constructive type theory , 1988 .

[16]  Georg Kreisel,et al.  Reflection Principles and Their Use for Establishing the Complexity of Axiomatic Systems , 1968 .

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

[18]  Friedrich W. von Henke,et al.  An Algebraic Approach to Data Types, Program Verification, and Program Synthesis , 1976, MFCS.

[19]  Robin Milner,et al.  Edinburgh lcf: a mechanized logic of computation , 1978 .

[20]  Harald Ruess,et al.  Computational Reflection in the Calculus of Constructions and its Application to Theorem Proving , 1997, TLCA.

[21]  Ulrich Berger,et al.  An inverse of the evaluation functional for typed lambda -calculus , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[22]  H. Andersen An Introduction to Binary Decision Diagrams , 1997 .

[23]  G. Boolos,et al.  Self-Reference and Modal Logic , 1985 .

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

[25]  Robert E. Shostak,et al.  Deciding Combinations of Theories , 1982, JACM.

[26]  Samuel Boutin,et al.  Using Reflection to Build Efficient and Certified Decision Procedures , 1997, TACS.

[27]  Greg Nelson,et al.  Simplification by Cooperating Decision Procedures , 1979, TOPL.

[28]  Christoph Sprenger,et al.  A Verified Model Checker for the Modal µ-calculus in Coq , 1998, TACAS.