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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
Appel, A.W., Felten, E.W.: Proof-carrying authentication. In: ACM Conference on Computer and Communications Security, pp. 52–62 (1999)
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)
Baue, L.: Access Control for the Web via Proof-carrying Authorization. PhD thesis, Princeton University (November 2003)
Cervesato, I., Pfenning, F.: A linear spine calculus. Journal of Logic and Computation 13(5), 639–688 (2003)
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)
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)
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)
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)
Graf, P.: Term Indexing. LNCS (LNAI), vol. 1053. Springer, Heidelberg (1996)
Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Journal of the Association for Computing Machinery 40(1), 143–184 (1993)
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)
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)
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)
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)
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)
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)
Paulson, L.C.: Natural deduction as higher-order resolution. Journal of Logic Programming 3, 237–258 (1986)
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)
Pfenning, F.: Computation and deduction (1997)
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)
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)
Pientka, B.: Higher-order substitution tree indexing. In: Palamidessi, C. (ed.) ICLP 2003. LNCS, vol. 2916, pp. 377–391. Springer, Heidelberg (2003)
Pientka, B.: Tabling for higher-order logic programming. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, pp. 54–68. Springer, Heidelberg (2005)
Pientka, B.: Tabled higher-order logic programming. PhD thesis, Dept. of Computer Sciences, Carnegie Mellon University, CMU-CS-03-185 (December 2003)
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)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)