Skip to main content

A theorem prover for a computational logic

  • Session 1: Keynote Address
  • Conference paper
  • First Online:
10th International Conference on Automated Deduction (CADE 1990)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 449))

Included in the following conference series:

Abstract

We briefly review a mechanical theorem-prover for a logic of recursive functions over finitely generated objects including the integers, ordered pairs, and symbols. The prover, known both as NQTHM and as the Boyer-Moore prover, contains a mechanized principle of induction and implementations of linear resolution, rewriting, and arithmetic decision procedures. We describe some applications of the prover, including a proof of the correct implementation of a higher level language on a microprocessor defined at the gate level. We also describe the ongoing project of recoding the entire prover as an applicative function within its own logic.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. W. Bevier. A Verified Operating System Kernel. Ph.D. Th., University of Texas at Austin, 1987.

    Google Scholar 

  2. W. R. Bevier. "Kit and the Short Stack". Journal of Automated Reasoning 5, 4 (1989), 519–530.

    Google Scholar 

  3. William Bevier, Matt Kaufmann, and William Young. Translation of a Gypsy Compiler Example into the Boyer-Moore Logic. Internal Note 169, Computational Logic, Inc., January, 1990.

    Google Scholar 

  4. W.W. Bledsoe. "Splitting and Reduction Heuristics in Automatic Theorem Proving". Artificial Intelligence 2 (1971), 55–77.

    Google Scholar 

  5. W. Bledsoe, R. Boyer, and W. Henneman. "Computer Proofs of Limit Theorems". Artificial Intelligence 3 (1972), 27–60.

    Google Scholar 

  6. N. Bourbaki. Elements of Mathematics. Addison Wesley, Reading, Massachusetts, 1968.

    Google Scholar 

  7. R. S. Boyer and J S. Moore. "Program Verification". Journal of Automated Reasoning 1, 1 (1985), 17–23.

    Google Scholar 

  8. R. S. Boyer, D. M. Goldschlag, M. Kaufmann, and J S. Moore. Functional Instantiation in First Order Logic, Report 44. Computational Logic, 1717 W. 6th St., Austin, Texas, 78703, U.S.A., 1989. To appear in the proceedings of the 1989 Workshop on Programming Logic, Programming Methodology Group, University of Goteborg.

    Google Scholar 

  9. R. S. Boyer and J S. Moore. "Proving Theorems about LISP Functions". JACM 22, 1 (1975), 129–144.

    Google Scholar 

  10. R. S. Boyer and J S. Moore. A Lemma Driven Automatic Theorem Prover for Recursive Function Theory. Proceedings of the 5th Joint Conference on Artificial Intelligence, 1977, pp. 511–519.

    Google Scholar 

  11. R. S. Boyer and J S. Moore. A Computational Logic. Academic Press, New York, 1979.

    Google Scholar 

  12. R. S. Boyer and J S. Moore. Metafunctions: Proving Them Correct and Using Them Efficiently as New Proof Procedures. In The Correctness Problem in Computer Science, R. S. Boyer and J S. Moore, Eds., Academic Press, London, 1981.

    Google Scholar 

  13. R. S. Boyer and J S. Moore. A Verification Condition Generator for FORTRAN. In The Correctness Problem in Computer Science, R. S. Boyer and J S. Moore, Eds., Academic Press, London, 1981.

    Google Scholar 

  14. R. S. Boyer and J S. Moore. The Mechanical Verification of a FORTRAN Square Root Program. SRI International, 1981.

    Google Scholar 

  15. R. S. Boyer and J S. Moore. MJRTY — A Fast Majority Vote Algorithm. Technical Report ICSCA-CMP-32, Institute for Computing Science and Computer Applications, University of Texas at Austin, 1982.

    Google Scholar 

  16. R. S. Boyer and J S. Moore. "Proof Checking the RSA Public Key Encryption Algorithm". American Mathematical Monthly 91, 3 (1984), 181–189.

    Google Scholar 

  17. R. S. Boyer and J S. Moore. "A Mechanical Proof of the Unsolvability of the Halting Problem". JACM 31, 3 (1984), 441–458.

    Google Scholar 

  18. R. S. Boyer and J S. Moore. A Computational Logic Handbook. Academic Press, New York, 1988.

    Google Scholar 

  19. R. S. Boyer and J S. Moore. Integrating Decision Procedures into Heuristic Theorem Provers: A Case Study with Linear Arithmetic. In Machine Intelligence 11, Oxford University Press, 1988.

    Google Scholar 

  20. R. S. Boyer and J S. Moore. "The Addition of Bounded Quantification and Partial Functions to A Computational Logic and Its Theorem Prover". Journal of Automated Reasoning 4 (1988), 117–172.

    Google Scholar 

  21. R. S. Boyer and J S. Moore. A Mechanical Proof of the Turing Completeness of Pure Lisp. In Automated Theorem Proving: After 25 Years, W.W. Bledsoe and D.W. Loveland, Eds., American Mathematical Society, Providence, R.I., 1984, pp. 133–167.

    Google Scholar 

  22. R. S. Boyer, M. W. Green and J S. Moore. The Use of a Formal Simulator to Verify a Simple Real Time Control Program. In D. Gries, et al, Ed., Beauty Is Our Business, Springer, 1990. To Appear.

    Google Scholar 

  23. A. Bronstein and C. Talcott. String-Functional Semantics for Formal Verification of Synchronous Circuits, Report No. STAN-CS-88-1210. Computer Science Department, Stanford University, 1988.

    Google Scholar 

  24. A. Bronstein. MLP: String-functional semantics and Boyer-Moore mechanization for the formal verification of synchronous circuits. Ph.D. Th., Stanford University, 1989.

    Google Scholar 

  25. A. Bronstein and C. Talcott. Formal Verification of Synchronous Circuits based on String-Functional Semantics: The 7 Paillet Circuits in Boyer-Moore. C-Cube 1989 Workshop on Automatic Verification Methods for Finite State Systems. LNCS 407, 1989, pp. 317–333.

    Google Scholar 

  26. R. Burstall. "Proving Properties of Programs by Structural Induction". The Computer Journal 12, 1 (1969), 41–48.

    Google Scholar 

  27. S. Chou. Mechanical Geometry Theorem Proving. Reidel, 1988.

    Google Scholar 

  28. Benedetto Lorenzo Di Vito. Verification of Communications Protocols and Abstract Process Models. Ph.D. Th., University of Texas at Austin, 1982.

    Google Scholar 

  29. T. L. Heath (translation and commentary). The Thirteen Books of Euclid's Elements. Dover, New York, 1908. p. 298, Vol 2., i.e. Proposition 2, Book VII.

    Google Scholar 

  30. R. Floyd. Assigning Meanings to Programs. In Mathematical Aspects of Computer Science, Proceedings of Symposia in Applied Mathematics, American Mathematical Society, Providence, Rhode Island, 1967, pp. 19–32.

    Google Scholar 

  31. David M. Goldschlag. "Mechanically Verifying Concurrent Programs with the Boyer-Moore Prover". IEEE Transactions on Software Engineering (September 1990). To appear.

    Google Scholar 

  32. David M. Goldschlag. Mechanizing Unity. In Proceedings of the IFIP TC2/WG2.3 Working Conference on Programming Concepts and Methods, M. Broy and C. B. Jones, Eds., Elsevier, Amsterdam, 1990.

    Google Scholar 

  33. David M. Goldschlag. "Proving Proof Rules: A Proof System for Concurrent Programs". Compass '90 (June 1990).

    Google Scholar 

  34. R. L. Goodstein. Recursive Number Theory. North-Holland Publishing Company, Amsterdam, 1964.

    Google Scholar 

  35. C. A. R. Hoare. "An Axiomatic Basis for Computer Programming". Comm. ACM 12, 10 (1969), 576–583.

    Google Scholar 

  36. L. Hodes. Solving Problems by Formula Manipulation. Proc. Second Inter. Joint Conf. on Art. Intell., The British Computer Society, 1971, pp. 553–559.

    Google Scholar 

  37. C.-H. Huang and C. Lengauer. "The Automated Proof of a Trace Transformation for a Bitonic Sort". Theoretical Computer Science 1, 46 (1986), 261–284.

    Google Scholar 

  38. W. A. Hunt. "Microprocessor Design Verification". Journal of Automated Reasoning 5, 4 (1989), 429–460.

    Google Scholar 

  39. Matt Kaufmann. A Formal Semantics and Proof of Soundness for the Logic of the NQTHM Version of the Boyer-Moore Theorem Prover. Internal Note 229, Institute for Computing Science, University of Texas at Austin, February, 1987.

    Google Scholar 

  40. Matt Kaufmann. A Mechanically-checked Semi-interactive Proof of Correctness of Gries's Algorithm for Finding the Largest Size of a Square True Submatrix. Internal Note 236, Institute for Computing Science, University of Texas at Austin, October, 1986.

    Google Scholar 

  41. Matt Kaufmann. An Example in NQTHM: Ramsey's Theorem. Internal Note 100, Computational Logic, Inc., November, 1988.

    Google Scholar 

  42. Matt Kaufmann. Boyer-Moore-ish Micro Gypsy and a Prototype Hardware Expander. Internal Note 73, Computational Logic, Inc., August, 1988.

    Google Scholar 

  43. Matt Kaufmann. A Mutual Recursion and Dependency Analysis Tool for NQTHM. Internal Note 99, Computational Logic, Inc., 1988.

    Google Scholar 

  44. Matt Kaufmann. A User's Manual for RCL. Internal Note 157, Computational Logic, Inc., October, 1989.

    Google Scholar 

  45. Matt Kaufmann and Matt Wilding. A Parallel Version of the Boyer-Moore Prover. Tech. Rept. 39, Computational Logic, Inc., February, 1989.

    Google Scholar 

  46. Matt Kaufmann. DEFN-SK: An Extension of the Boyer-Moore Theorem Prover to Handle First-Order Quantifiers. Tech. Rept. 43, Computational Logic, Inc., 1717 W. 6th St, Suite 290, Austin, Texas, June, 1989.

    Google Scholar 

  47. Matt Kaufmann. Addition of Free Variables to an Interactive Enhancement of the Boyer-Moore Theorem Prover. Tech. Rept. 42, Computational Logic, Inc., Austin, Texas, May, 1989.

    Google Scholar 

  48. Matt Kaufmann. A Mechanically-checked Correctness Proof of Generalization in the Presence of Free Variables. Tech. Rept. 53, Computational Logic, Inc., Austin, Texas, March, 1990.

    Google Scholar 

  49. Matt Kaufmann. An Integer Library for NQTHM. Internal Note 182, Computational Logic, Inc., March, 1990.

    Google Scholar 

  50. Leslie Lamport, Robert Shostak, and Marshall Pease. "The Byzantine Generals Problem". ACM TOPLAS 4, 3 (July 1982), 382–401.

    Google Scholar 

  51. C. Lengauer. "On the Role of Automated Theorem Proving in the Compile-Time Derivation of Concurrency". Journal of Automated Reasoning 1, 1 (1985), 75–101.

    Google Scholar 

  52. C. Lengauer and C.-H. Huang. A Mechanically Certified Theorem about Optimal Concurrency of Sorting Networks. Proc. 13th Ann. ACM Symp. on Principles of Programming Languages, 1986, pp. 307–317.

    Google Scholar 

  53. D. Loveland. Automated Theorem Proving: A Logical Basis. North Holland, Amsterdam, 1978.

    Google Scholar 

  54. J. McCarthy. "Recursive Functions of Symbolics Expressions and their Computation by Machine". Communications of the Association for Computing Machinery 3, 4 (1960), 184–195.

    Google Scholar 

  55. J. McCarthy. The Lisp Programmer's Manual. M.I.T. Computation Center, 1960.

    Google Scholar 

  56. J. McCarthy. Towards a Mathematical Science of Computation. Proceedings of IFIP Congress, 1962, pp. 21–28.

    Google Scholar 

  57. J. McCarthy. Computer Programs for Checking Mathematical Proofs. Recursive Function Theory, Proceedings of a Symposium in Pure Mathematics, Providence, Rhode Island, 1962, pp. 219–227.

    Google Scholar 

  58. J. McCarthy. A Basis for a Mathematical Theory of Computation. In Computer Programming and Formal Systems, P. Braffort and D. Hershberg, Eds., North-Holland Publishing Company, Amsterdam, The Netherlands, 1963.

    Google Scholar 

  59. J. McCarthy, et al. LISP 1.5 Programmer's Manual. The MIT Press, Cambridge, Massachusetts, 1965.

    Google Scholar 

  60. J S. Moore. "A Mechanical Proof of the Termination of Takeuchi's Function". Information Processing Letters 9, 4 (1979), 176–181.

    Google Scholar 

  61. J. S. Moore. "A Mechanically Verified Language Implementation". Journal of Automated Reasoning 5, 4 (1989), 461–492.

    Google Scholar 

  62. J. S. Moore, et. al. "Special Issue on System Verification". Journal of Automated Reasoning 5, 4 (1989), 409–530.

    Google Scholar 

  63. Matt Kaufmann. A User's Manual for an Interactive Enhancement to the Boyer-Moore Theorem Prover. Tech. Rept. 19, Computational Logic, Inc., Austin, Texas, May, 1988.

    Google Scholar 

  64. Marshall Pease, Robert Shostak, and Leslie Lamport. "Reaching Agreement in the Presence of Faults". JACM 27, 2 (April 1980), 228–234.

    Google Scholar 

  65. J. A. Robinson. "A Machine-oriented Logic Based on the Resolution Principle". JACM 12, 1 (1965), 23–41.

    Google Scholar 

  66. David M. Russinoff. "An Experiment with the Boyer-Moore Theorem Prover: A Proof of Wilson's Theorem". Journal of Automated Reasoning 1, 2 (1985), 121–139.

    Google Scholar 

  67. N. Shankar. "Towards Mechanical Metamathematics". Journal of Automated Reasoning 1, 4 (1985), 407–434.

    Google Scholar 

  68. N. Shankar. A Mechanical Proof of the Church-Rosser Theorem. Tech. Rept. ICSCACMP-45, Institute for Computing Science, University of Texas at Austin, 1985.

    Google Scholar 

  69. N. Shankar. Proof Checking Metamathematics. Ph.D. Th., University of Texas at Austin, 1986.

    Google Scholar 

  70. J. R. Shoenfield. Mathematical Logic. Addison-Wesley, Reading, Ma., 1967.

    Google Scholar 

  71. T. Skolem. The Foundations of Elementary Arithmetic Established by Means of the Recursive Mode of Thought, without the Use of Apparent Variables Ranging over Infinite Domains. In From Frege to Godel, J. van Heijenoort, Ed., Harvard University Press, Cambridge, Massachusetts, 1967.

    Google Scholar 

  72. G. L. Steele, Jr. Common Lisp The Language. Digital Press, 30 North Avenue, Burlington, MA 01803, 1984.

    Google Scholar 

  73. J. von Neumann. John von Neumann, Collected Works, Volume V. Pergamon Press, Oxford, 1961.

    Google Scholar 

  74. L. Wos, et al. "The concept of demodulation in theorem proving". Journal of the ACM 14 (1967), 698–709.

    Google Scholar 

  75. Matt Kaufmann and William D. Young. Comparing Gypsy and the Boyer-Moore Logic for Specifying Secure Systems. Institute for Computing Science, University of Texas at Austin, May, 1987. ICSCA-CMP-59.

    Google Scholar 

  76. W. D. Young. "A Mechanically Verified Code Generator". Journal of Automated Reasoning 5, 4 (1989), 493–518.

    Google Scholar 

  77. Yuan Yu. "Computer Proofs in Group Theory". Journal of Automated Reasoning (1990). To appear.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mark E. Stickel

Rights and permissions

Reprints and permissions

Copyright information

© 1990 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Boyer, R.S., Moore, J.S. (1990). A theorem prover for a computational logic. In: Stickel, M.E. (eds) 10th International Conference on Automated Deduction. CADE 1990. Lecture Notes in Computer Science, vol 449. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-52885-7_75

Download citation

  • DOI: https://doi.org/10.1007/3-540-52885-7_75

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-52885-2

  • Online ISBN: 978-3-540-47171-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics