Skip to main content

Overcoming Performance Barriers: Efficient Verification Techniques for Logical Frameworks

  • Conference paper
Book cover Logic Programming (ICLP 2006)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4079))

Included in the following conference series:

  • 461 Accesses

Abstract

In recent years, logical frameworks which support formalizing language specifications together with their meta-theory have been pervasively used in small and large-scale applications, from certifying code [2] to advocating a general infrastructure for formalizing the meta-theory and semantics of programming languages [5]. In particular, the logical framework LF [9], based on the dependently typed lambda- calculus, and light-weight variants of it like LF i [17] have played a major role in these applications. While the acceptance of logical framework technology has grown and they have matured, one of the most criticized points is concerned with the run-time performance. In this tutorial we give a brief introduction to logical frameworks, describe its state-of-the art and present recent advances in addressing some of the existing performance issues.

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. Appel, A.: Foundational proof-carrying code project. personal communication

    Google Scholar 

  2. Appel, A.: Foundational proof-carrying code. In: Halpern, J. (ed.) Proceedings of the 16th Annual Symposium on Logic in Computer Science (LICS 2001), pp. 247–256. IEEE Computer Society Press, Los Alamitos (2001) (Invited Talk)

    Chapter  Google Scholar 

  3. Appel, A.W., Felten, E.W.: Proof-carrying authentication. In: ACM Conference on Computer and Communications Security, pp. 52–62 (1999)

    Google Scholar 

  4. Appel, W., Felty, A.P.: A semantic model of types and machine instructions for proof-carrying code. In: 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2000), pp. 243–253 (January 2000)

    Google Scholar 

  5. Aydemir, B., Bohannon, A., Fairbairn, M., Foster, J., Pierce, B., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., Zdancewic, S.: Mechanized metatheory for the masses: The poplmark challenge (2005)

    Google Scholar 

  6. Bernard, A., Lee, P.: Temporal Logic for Proof-Carrying Code. In: Voronkov, A. (ed.) CADE 2002. LNCS, vol. 2392, p. 31. Springer, Heidelberg (2002)

    Google Scholar 

  7. Crary, K., Sarkar, S.: Foundational certified code in a metalogical framework. In: Baader, F. (ed.) CADE 2003. LNCS, vol. 2741, pp. 106–120. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  8. Graf, P.: Substitution tree indexing. In: Hsiang, J. (ed.) RTA 1995. LNCS, vol. 914, pp. 117–131. Springer, Heidelberg (1995)

    Google Scholar 

  9. Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Journal of the Association for Computing Machinery 40(1), 143–184 (1993)

    MATH  MathSciNet  Google Scholar 

  10. Huet, G.: A unification algorithm for typed λ-calculus. Theoretical Computer Science 1, 27–57 (1975)

    Article  MathSciNet  Google Scholar 

  11. Michaylov, S., Pfenning, F.: An empirical study of the runtime behavior of higher-order logic programs. In: Miller, D. (ed.) Proceedings of the Workshop on the λProlog Programming Language, Philadelphia, Pennsylvania, pp. 257–271. University of Pennsylvania (July 1992) Available as Technical Report MS-CIS-92-86.

    Google Scholar 

  12. Miller, D.: Unification of simply typed lambda-terms as logic programming. In: Eighth International Logic Programming Conference, Paris, France, pp. 255–269. MIT Press, Cambridge (1991)

    Google Scholar 

  13. Nadathur, G., Miller, D.: An overview of λProlog. In: Bowen, K.A., Kowalski, R.A. (eds.) Fifth International Logic Programming Conference, Seattle, Washington, pp. 810–827. MIT Press, Cambridge (1988)

    Google Scholar 

  14. Nadathur, G., Mitchell, D.J.: System Description: Teyjus - A Compiler and Abstract Machine Based Implementation of λProlog. In: Ganzinger, H. (ed.) CADE 1999. LNCS, vol. 1632, pp. 287–291. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  15. Nanevski, A., Pfenning, F., Pientka, B.: A contextual modal type theory (2005)

    Google Scholar 

  16. Necula, G., Rahul, S.: Oracle-based checking of untrusted software. In: 28th ACM Symposium on Principles of Programming Languages (POPL 2001), pp. 142–154 (2001)

    Google Scholar 

  17. Necula, G.C., Lee, P.: Efficient representation and validation of logical proofs. In: Pratt, V. (ed.) Proceedings of the 13th Annual Symposium on Logic in Computer Science (LICS 1998), Indianapolis, Indiana, pp. 93–104. IEEE Computer Society Press, Los Alamitos (1998)

    Google Scholar 

  18. Paulson, L.C.: Natural deduction as higher-order resolution. Journal of Logic Programming 3, 237–258 (1986)

    Article  MATH  MathSciNet  Google Scholar 

  19. Pfenning, F.: Logic programming in the LF logical framework. In: Huet, G., Plotkin, G. (eds.) Logical Frameworks, pp. 149–181. Cambridge University Press, Cambridge (1991)

    Chapter  Google Scholar 

  20. Pfenning, F.: Unification and anti-unification in the Calculus of Constructions. In: Sixth Annual IEEE Symposium on Logic in Computer Science, Amsterdam, The Netherlands, pp. 74–85 (July 1991)

    Google Scholar 

  21. Pfenning, F., Elliott, C.: Higher-order abstract syntax. In: Proceedings of the ACM SIGPLAN 1988 Symposium on Language Design and Implementation, Atlanta, Georgia, pp. 199–208 (June 1988)

    Google Scholar 

  22. Pfenning, F., Schürmann, C.: System Description: Twelf - A Meta-Logical Framework for Deductive Systems. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 202–206. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  23. Pientka, B.: Higher-Order Substitution Tree Indexing. In: Palamidessi, C. (ed.) ICLP 2003. LNCS, vol. 2916, pp. 377–391. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  24. Pientka, B.: Tabling for Higher-Order Logic Programming. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, pp. 54–68. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  25. Pientka, B.: Eliminating redundancy in higher-order unification: A lightweight approach. In: Furbach, U., Shankar, N. (eds.) IJCAR 2006. LNCS, vol. 4130, pp. 362–376. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  26. Pientka, B., Pfenning, F.: Optimizing Higher-Order Pattern Unification. In: Baader, F. (ed.) CADE 2003. LNCS, vol. 2741, pp. 473–487. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  27. Qian, Z.: Linear unification of higher-order patterns. In: Gaudel, M.-C., Jouannaud, J.-P. (eds.) CAAP 1993, FASE 1993, and TAPSOFT 1993. LNCS, vol. 668, pp. 391–405. Springer, Heidelberg (1993)

    Google Scholar 

  28. Ramakrishnan, I.V., Sekar, R., Voronkov, A.: Term indexing. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, vol. 2, pp. 1853–1962. Elsevier Science Publishers B.V., Amsterdam (2001)

    Chapter  Google Scholar 

  29. Sarkar, S., Pientka, B., Crary, K.: Small Proof Witnesses for LF. In: Gabbrielli, M., Gupta, G. (eds.) ICLP 2005. LNCS, vol. 3668, pp. 387–401. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pientka, B. (2006). Overcoming Performance Barriers: Efficient Verification Techniques for Logical Frameworks. In: Etalle, S., Truszczyński, M. (eds) Logic Programming. ICLP 2006. Lecture Notes in Computer Science, vol 4079. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11799573_3

Download citation

  • DOI: https://doi.org/10.1007/11799573_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-36635-5

  • Online ISBN: 978-3-540-36636-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics