Skip to main content

Executing Higher Order Logic

  • Conference paper
  • First Online:
Types for Proofs and Programs (TYPES 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2277))

Included in the following conference series:

Abstract

We report on the design of a prototyping component for the theorem prover Isabelle/HOL. Specifications consisting of datatypes, recursive functions and inductive definitions are compiled into a functional program. Functions and inductively defined relations can be mixed. Inductive definitions must be such that they can be executed in Prolog style but requiring only matching rather than unification. This restriction is enforced by a mode analysis. Tail recursive partial functions can be defined and executed with the help of a while combinator.

Supported by DFG Graduiertenkolleg Logic in Computer Science, and IST project 29001 TYPES.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. D. Aagaard, R. B. Jones, and C.-J. H. Seger. Lifted-FL: A Pragmatic Implementation of Combined Model Checking and Theorem Proving. In Y. Bertot, G. Dowek, A. Hirschowitz, C. Paulin, and L. Théry, editors, Theorem Proving in Higher Order Logics, 12th International Conference (TPHOLs’99), volume 1690 of Lect. Notes in Comp. Sci., pages 323–340. Springer-Verlag, 1999.

    Google Scholar 

  2. J. H. Andrews. Executing formal specifications by translation to higher order logic programming. In E. L. Gunter and A. Felty, editors, 10th International Conference on Theorem Proving in Higher Order Logics, volume 1275 of Lect. Notes in Comp. Sci., pages 17–32. Springer-Verlag, 1997.

    Google Scholar 

  3. I. Attali, D. Caromel, and M. Russo. A formal and executable semantics for Java. In Proceedings of Formal Underpinnings of Java, an OOPSLA’98 Workshop, Vancouver, Canada, 1998. Technical report, Princeton University.

    Google Scholar 

  4. B. Barras, S. Boutin, C. Cornes, J. Courant, Y. Coscoy, D. Delahaye, D. de Rauglaudre, J.-C. Filliâtre, E. Giménez, H. Herbelin, G. Huet, H. Laulhère, C. Muñoz, C. Murthy, C. Parent-Vigouroux, P. Loiseleur, C. Paulin-Mohring, A. Saϊbi, and B. Werner. The Coq proof assistant reference manual-version 6.3.1. Technical report, INRIA, 1999.

    Google Scholar 

  5. D. Basin. Lazy infinite-state analysis of security protocols. In Secure Networking — CQRE [Secure]’ 99, volume 1740 of Lect. Notes in Comp. Sci., pages 30–42. Springer-Verlag, 1999.

    Google Scholar 

  6. T. Despeyroux. Typol: a formalism to implement natural semantics. Technical Report 94, INRIA, 1988.

    Google Scholar 

  7. C. Dubois and R. Gayraud. Compilation de la sémantique naturelle vers ML. In Proceedings of journées francophones des langages applicatifs (JFLA99), 1999. Available via http://pauillac.inria.fr/~weis/jfla99/ps/dubois.ps.

  8. W. Goerigk, July 2000. Personal communication.

    Google Scholar 

  9. M. Hanus, H. Kuchen, and J. Moreno-Navarro. Curry: A truly functional logic language. In Proc. ILPS’95 Workshop on Visions for the Future of Logic Programming, pages 95–107, 1995.

    Google Scholar 

  10. I. Jacobs and L. Rideau-Gallot. A Centaur tutorial. Technical Report 140, INRIA Sophia-Antipolis, July 1992.

    Google Scholar 

  11. M. Kaufmann, P. Manolios, and J. S. Moore. Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, June 2000.

    Google Scholar 

  12. C. S. Mellish. The automatic generation of mode declarations for Prolog programs. Technical Report 163, Department of Artificial Intelligence, University of Edinburgh, August 1981.

    Google Scholar 

  13. T. Nipkow. More Church-Rosser proofs (in Isabelle/HOL). Journal of Automated Reasoning, 26, 2001.

    Google Scholar 

  14. D. v. Oheimb and T. Nipkow. Machine-checking the Java specification: Proving type-safety. In J. Alves-Foss, editor, Formal Syntax and Semantics of Java, volume 1523 of Lect. Notes in Comp. Sci., pages 119–156. Springer-Verlag, 1999.

    Google Scholar 

  15. S. Owre, N. Shankar, J. M. Rushby, and D. W. J. Stringer-Calvert. PVS System Guide version 2.3. Technical report, SRI International Computer Science Laboratory, Menlo Park CA, September 1999.

    Google Scholar 

  16. C. Paulin-Mohring and B. Werner. Synthesis of ML programs in the system Coq. Journal of Symbolic Computation, 15:607–640, 1993.

    Article  MATH  MathSciNet  Google Scholar 

  17. L. C. Paulson. The inductive approach to verifying cryptographic protocols. J. Computer Security, 6:85–128, 1998.

    Google Scholar 

  18. F. Pfenning. Logic programming in the LF Logical Framework. In G. Huet and G. Plotkin, editors, Logical Frameworks, pages 66–78. Cambridge University Press, 1991.

    Google Scholar 

  19. P. S. Rajan. Executing HOL specifications: Towards an evaluation semantics for classical higher order logic. In L. J. M. Claesen and M. J. C. Gordon, editors, Higher order Logic Theorem Proving and its Applications, Leuven, Belgium, September 1992. Elsevier.

    Google Scholar 

  20. K. Slind. Reasoning about Terminating Functional Programs. PhD thesis, Institut für Informatik, TU München, 1999.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berghofer, S., Nipkow, T. (2002). Executing Higher Order Logic. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R., Pollack, R. (eds) Types for Proofs and Programs. TYPES 2000. Lecture Notes in Computer Science, vol 2277. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45842-5_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-45842-5_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43287-6

  • Online ISBN: 978-3-540-45842-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics