Advertisement

Introduction to ACL2

  • Sandip Ray
Chapter

Abstract

ACL2 is the name for (1)~a programming language based on a subset of Common Lisp, (2)~a logic, and (3)~a mechanical theorem prover for the logic. ACL2 is an industrial-strength theorem prover that has been used successfully in a number of formal verification projects both in the industry and academia. We present the logic of ACL2 and briefly touch upon how computing systems can be defined in ACL2 and how the logic can be used to prove theorems about them.

Keywords

Theorem Prover Function Symbol Induction Rule Proof Obligation Extension Principle 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 14.
    W. R. Bevier. A Verified Operating System Kernel. PhD thesis, Department of Computer Sciences, The University of Texas at Austin, 1987.Google Scholar
  2. 15.
    W. R. Bevier, W. A. Hunt, Jr., J. S. Moore, and W. D. Young. An Approach to System Verification. Journal of Automated Reasoning, 5(4):409–530, December 1989.Google Scholar
  3. 19.
    R. S. Boyer, D. Goldshlag, M. Kaufmann, and J. S. Moore. Functional Instantiation in First Order Logic. In V. Lifschitz, editor, Artificial Intelligence and Mathematical Theory of Computation: Papers in Honor of John McCarthy, pages 7–26. Academic Press, 1991.Google Scholar
  4. 20.
    R. S. Boyer, M. Kaufmann, and J. S. Moore. The Boyer-Moore Theorem Prover and Its Interactive Enhancements. Computers and Mathematics with Applications, 29(2):27–62, 1995.MathSciNetCrossRefGoogle Scholar
  5. 21.
    R. S. Boyer and J. S. Moore. A Computational Logic. Academic Press, New York, NY, 1979.MATHGoogle Scholar
  6. 22.
    R. S. Boyer and J. S. Moore. Metafunctions: Proving them Correct and Using Them Efficiently as New Proof Procedure. In R. S. Boyer and J. S. Moore, editors, The Correctness Problem in Computer Science. Academic Press, London, UK, 1981.Google Scholar
  7. 23.
    R. S. Boyer and J. S. Moore. A Computational Logic Handbook. Academic Press, New York, NY, 1988.MATHGoogle Scholar
  8. 25.
    R. S. Boyer and J. S. Moore. A Computational Logic Handbook. Academic Press, London, UK, 1997.Google Scholar
  9. 26.
    R. S. Boyer and J. S. Moore. Single-Threaded Objects in ACL2. In S. Krishnamurthy and C. R. Ramakrishnan, editors, Practical Aspects of Declarative Languages (PADL), volume 2257 of LNCS, pages 9–27. Springer-Verlag, 2002.Google Scholar
  10. 27.
    R. S. Boyer and Y. Yu. Automated Proofs of Object Code for a Widely Used Microprocessor. Journal of the ACM, 43(1), January 1996.Google Scholar
  11. 31.
    B. Brock and W. A. Hunt, Jr. Formal Analysis of the Motorola CAP DSP. In Industrial-Strength Formal Methods in Practice. Springer, 1999.Google Scholar
  12. 32.
    B. Brock, M. Kaufmann, and J. S. Moore. ACL2 Theorems About Commercial Microprocessors. In M. Srivas and A. Camilleri, editors, Proceedings of the 1st International Conference on Formal Methods in Computer-Aided Design (FMCAD 1996), volume 1166 of LNCS, pages 275–293, Palo Alto, CA, 1996. Springer-Verlag.CrossRefGoogle Scholar
  13. 40.
    G. Cantor. Beitrãge zur Begrũndung der transfiniten Mengenlehre. Mathematische Annalen, xlvi:481–512, 1895.CrossRefGoogle Scholar
  14. 41.
    G. Cantor. Beitrãge zur Begrũndung der transfiniten Mengenlehre. Mathematische Annalen, xlix:207–246, 1897.MathSciNetCrossRefGoogle Scholar
  15. 42.
    G. Cantor. Contributions to the Founding of the Theory of Transfinite Numbers. Dover Publications Inc., 1952. Translated by P. E. B. Jourdain.Google Scholar
  16. 46.
    A. Church and S. C. Kleene. Formal Definitions in the Theory of Ordinal Numbers. Fundamenta Mathematicae, 28:11–21, 1937.Google Scholar
  17. 76.
    A. D. Flatau. A Verified Language Implementation of an Applicative Language with Dynamic Storage Allocation. PhD thesis, Department of Computer Sciences, The University of Texas at Austin, 1992.Google Scholar
  18. 91.
    D. Greve, M. Wilding, and D. Hardin. High-Speed, Analyzable Simulators. In M. Kaufmann, P. Manolios, and J. S. Moore, editors, Computer-Aided Reasoning: ACL2 Case Studies, pages 89–106, Boston, MA, June 2000. Kluwer Academic Publishers.Google Scholar
  19. 92.
    D. A. Greve. Symbolic Simulation of the JEM1 Microprocessor. In G. Gopalakrishnan and P. Windley, editors, Proceedings of the 2nd International Conference on Formal Methods in Computer-Aided Design (FMCAD 1998), volume 1522 of LNCS, Palo Alto, CA, 1998. Springer-Verlag.Google Scholar
  20. 98.
    J. Harrison. Metatheory and Reflection in Theorem Proving: A Survey and Critique. Technical Report CRC-053, SRI International Cambridge Computer Science Research Center, 1995.Google Scholar
  21. 108.
    W. A. Hunt, Jr. FM8501: A Verified Microprocessor, volume 795 of LNAI. Springer-Verlag, 1994.Google Scholar
  22. 110.
    W. A. Hunt, Jr., M. Kaufmann, R. Krug, J. S. Moore, and E. Smith. Meta Reasoning in ACL2. In J. Hurd and T. Melham, editors, Proceedings of the 18th International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2005), volume 3603 of LNCS, pages 163–178, Oxford, England, 2005. Springer-Verlag.CrossRefGoogle Scholar
  23. 111.
    W. A. Hunt, Jr., R. B. Krug, and J. S. Moore. Linear and Nonlinear Arithmetic in ACL2. In D. Geist, editor, Proceedings of the 12th International Conference on Correct Hardware Design and Verification Methods (CHARME 2003), volume 2860 of LNCS, pages 319–333, L’Aquila, Italy, July 2003. Springer-Verlag.Google Scholar
  24. 120.
    M. Kaufmann. Modular Proof: The Fundamental Theorem of Calculus. In P. Manlolios, M. Kaufmann, and J. S. Moore, editors, Computer-Aided Reasoning: ACL2 Case Studies, pages 59–72. Kluwer Academic Publishers, June 2000.Google Scholar
  25. 121.
    M. Kaufmann, P. Manolios, and J. S. Moore, editors. Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Publishers, Boston, MA, June 2000.Google Scholar
  26. 122.
    M. Kaufmann, P. Manolios, and J. S. Moore. Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Boston, MA, June 2000.Google Scholar
  27. 123.
    M. Kaufmann and J. S. Moore. ACL2 Documentation: O-P. See URL http://-www.cs.-utexas.edu/-users/-moore/-acl2/v2-9/O-P.html.Google Scholar
  28. 124.
    M. Kaufmann and J. S. Moore. ACL2 Home Page. See URL http://-www.cs.-utexas.edu/-users/-moore/-acl2.Google Scholar
  29. 127.
    M. Kaufmann and J. S. Moore. Design Goals of ACL2. Technical Report 101, Computational Logic Incorporated (CLI), 1717 West Sixth Street, Suite 290, Austin, TX 78703, 1994.Google Scholar
  30. 128.
    M. Kaufmann and J. S. Moore. A Precise Description of the ACL2 Logic. See URL http://www.cs.-utexas.-edu/-users/-moore/-publications/-km97.ps.g% z, 1997.Google Scholar
  31. 129.
    M. Kaufmann and J. S. Moore. Structured Theory Development for a Mechanized Logic. Journal of Automated Reasoning, 26(2):161–203, 2001.MathSciNetMATHCrossRefGoogle Scholar
  32. 135.
    K. Kunen. A Ramsey Theorem in Boyer-Moore Logic. Journal of Automated Reasoning, 15(2), October 1995.Google Scholar
  33. 147.
    H. Liu and J. S. Moore. Java Program Verification via a JVM Deep Embedding in ACL2. In K. Slind, A. Bunker, and G. Gopalakrishnan, editors, Proceedings of the 17th International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2004), volume 3233 of LNCS, pages 184–200, Park City, Utah, 2004. Springer-Verlag.CrossRefGoogle Scholar
  34. 148.
    H. Liu and J. S. Moore. Executable JVM model for Analytical Reasoning: A Study. Science of Computer Programming, 57(3):253–274, 2005.MathSciNetMATHCrossRefGoogle Scholar
  35. 157.
    P. Manolios and D. Vroon. Algorithms for Ordinal Arithmetic. In F. Baader, editor, Proceedings of the 19th International Conference on Automated Deduction (CADE 2003), volume 2741 of LNAI, pages 243–257, Miami, FL, July 2003. Springer-Verlag.Google Scholar
  36. 158.
    P. Manolios and D. Vroon. Integrating Reasoning About Ordinal Arithmetic into ACL2. In A. J. Hu and A. K. Martin, editors, Proceedings of the 5th International Conference on Formal Methods in Computer-Aided Design (FMCAD 2004), volume 3312 of LNCS, pages 82–97, Austin, TX, November 2004. Springer-Verlag.Google Scholar
  37. 173.
    J. S. Moore. Piton: A Mechanically Verified Assembly Language. Kluwer Academic Publishers, 1996.Google Scholar
  38. 176.
    J. S. Moore. Rewriting for Symbolic Execution of State Machine Models. In G. Berry, H. Comon, and J. Finkel, editors, Proceedings of the 13th International Conference on Computer-Aided Verification (CAV 2001), volume 2102 of LNCS, pages 411–422, Paris, France, September 2001. Springer-Verlag.CrossRefGoogle Scholar
  39. 179.
    J. S. Moore, T. Lynch, and M. Kaufmann. A Mechanically Checked Proof of the Kernel of the AMD5K86 Floating-Point Division Algorithm. IEEE Transactions on Computers, 47(9):913–926, September 1998.MathSciNetCrossRefGoogle Scholar
  40. 219.
    H. Rogers, Jr. Theory of Recursive Functions and Effective Computability. MIT Press, 1987.Google Scholar
  41. 220.
    D. Russinoff. A Mechanical Proof of Quadratic Reciprocity. Journal of Automated Reasoning, 8:3–21, 1992.MathSciNetMATHCrossRefGoogle Scholar
  42. 223.
    D. Russinoff. A Mechanically Checked Proof of IEEE Compliance of a Register-Transfer-Level Specification of the AMD-K7 Floating-Point Multiplication, Division, and Square Root Instructions. LMS Journal of Computation and Mathematics, 1:148–200, December 1998.MathSciNetMATHCrossRefGoogle Scholar
  43. 224.
    D. Russinoff and A. Flatau. RTL Verification: A Floating Point Multiplier. In M. Kaufmann, P. Manolios, and J. S. Moore, editors, Computer-Aided Reasoning: ACL2 Case Studies, pages 201–232, Boston, MA, June 2000. Kluwer Academic Publishers.Google Scholar
  44. 234.
    N. Shankar. Metamathematics, Machines, and Gödel’s Proof. Cambridge University Press, 1994.Google Scholar
  45. 236.
    J. R. Shoenfield. Mathematical Logic. Adison-Wesley, Reading, MA, 1967.MATHGoogle Scholar
  46. 239.
    S. W. Smith and V. Austel. Trusting Trusted Hardware: Towards a Formal Model of Programmable Secure Coprocessors. In Proceedings of the 3rd USENIX Workshop on Electronic Commerce, Boston, MA, September 1998.Google Scholar
  47. 242.
    G. L Steele, Jr. Common Lisp the Language. Digital Press, 30 North Avenue, Burlington, MA 01803, 2nd edition, 1990.Google Scholar
  48. 257.
    M. Wilding. A Mechanically Verified Application for a Mechanically Verified Environment. In C. Courcoubetis, editor, Proceedings of the 5th International Conference on Computer-Aided Verification (CAV 1993), volume 697 of LNCS, pages 268–279, Elounda, Greece, 1993. Springer-Verlag.CrossRefGoogle Scholar
  49. 260.
    W. D. Young. A Verified Code Generator for a Subset of Gypsy. Technical Report 33, Computational Logic Inc., 1988.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

  1. 1.Department of Computer SciencesUniversity of Texas, AustinAustinUSA

Personalised recommendations