Skip to main content

Small Proof Witnesses for LF

  • Conference paper
Logic Programming (ICLP 2005)

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

Included in the following conference series:

Abstract

We instrument a higher-order logic programming search procedure to generate and check small proof witnesses for the Twelf system, an implementation of the logical framework LF. In particular, we extend and generalize ideas from Necula and Rahul [16] in two main ways: 1) We consider the full fragment of LF including dependent types and higher-order terms and 2) We study the use of caching of sub-proofs to further compact proof representations. Our experimental results demonstrate that many of the restrictions in previous work can be overcome and generating and checking small witnesses within Twelf provides valuable addition to its general safety infrastructure.

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. Abadi, M., Cardelli, L., Curien, P.-L., Lèvy, J.-J.: Explicit substitutions. In: Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, San Francisco, California, pp. 31–46. ACM, New York (1990)

    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), June 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), January 2000, pp. 243–253 (2000)

    Google Scholar 

  5. Baue, L.: Access Control for the Web via Proof-carrying Authorization. PhD thesis, Princeton University (November 2003)

    Google Scholar 

  6. Cervesato, I., Pfenning, F.: A linear spine calculus. Journal of Logic and Computation 13(5), 639–688 (2003)

    Article  MATH  MathSciNet  Google Scholar 

  7. Chen, J., Wu, D., Appel, A.W., Fang, H.: A provably sound TAL for back-end optimization. In: PLDI 2003: Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, June 2003, pp. 208–219. ACM Press, New York (2003)

    Chapter  Google Scholar 

  8. Crary, K.: Toward a foundational typed assembly language. In: 30th ACM Symposiumn on Principles of Programming Languages (POPL), New Orleans, Louisisana, January 2003, pp. 198–212. ACM Press, New York (2003)

    Chapter  Google Scholar 

  9. Crary, K., Sarkar, S.: Foundational certified code in a metalogical framework. In: 19th International Conference on Automated Deduction, Miami, Florida, USA, Extended version published as CMU technical report CMU-CS-03-108 (2003)

    Google Scholar 

  10. Davies, R., Pfenning, F.: Intersection types and computational effects. In: Wadler, P. (ed.) Proceedings of the Fifth International Conference on Functional Programming, pp. 198–208. ACM Press, New York (2000)

    Chapter  Google Scholar 

  11. Graf, P.: Term Indexing. LNCS (LNAI), vol. 1053. Springer, Heidelberg (1996)

    Google Scholar 

  12. 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 

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

    Google Scholar 

  14. Miller, D., Nadathur, G., Pfenning, F., Scedrov, A.: Uniform proofs as a foundation for logic programming. Annals of Pure and Applied Logic 51, 125–157 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  15. Nadathur, G., Mitchell, D.J.: System description: Teyjus – a compiler and abstract machine based implementation of Lambda Prolog. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 287–291. Springer, Heidelberg (1999)

    Chapter  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, June 1998, pp. 93–104. IEEE Computer Society Press, Los Alamitos (1998)

    Google Scholar 

  18. Necula, G.C., Lee, P.: Safe, untrusted agents using proof-carrying code. In: Vigna, G. (ed.) Mobile Agents and Security. LNCS, vol. 1419, pp. 61–91. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

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

    Article  MATH  MathSciNet  Google Scholar 

  20. 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 

  21. Pfenning, F.: Computation and deduction (1997)

    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.: A proof-theoretic foundation for tabled higher-order logic programming. In: Stuckey, P.J. (ed.) ICLP 2002. LNCS, vol. 2401, pp. 271–286. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  24. 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 

  25. 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 

  26. Pientka, B.: Tabled higher-order logic programming. PhD thesis, Dept. of Computer Sciences, Carnegie Mellon University, CMU-CS-03-185 (December 2003)

    Google Scholar 

  27. Pientka, B., Pfennning, F.: Optimizing higher-order pattern unification. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 473–487. Springer, Heidelberg (2003)

    Chapter  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. Reed, J.: Redundancy Elimination for LF. In: Schuermann, C. (ed.) Proceedings of the Fourth Workshop on Logical Frameworks and Meta-languages — LFM 2004, Cork, Ireland, July 5 (2004)

    Google Scholar 

  30. Wu, D., Appel, A.W., Stump, A.: Foundational proof checkers with small witnesses. In: PPDP 2003: Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming, pp. 264–274. ACM Press, New York (2003)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sarkar, S., Pientka, B., Crary, K. (2005). Small Proof Witnesses for LF. In: Gabbrielli, M., Gupta, G. (eds) Logic Programming. ICLP 2005. Lecture Notes in Computer Science, vol 3668. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11562931_29

Download citation

  • DOI: https://doi.org/10.1007/11562931_29

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-29208-1

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics