Abstract
Higher-order logic programming languages such as Elf extend first-order logic programming in two ways: first-order terms are replaced with (dependently) typed λ-terms and the body of clauses may contain implication and universal quantification. In this paper, we describe tabled higher-order logic programming where some redundant computation is eliminated by memoizing sub-computation and re-using its result later. This work extends Tamaki and Sato’s search strategy based on memoization to the higher-order setting. We give a proof-theoretic characterization of tabling based on uniform proofs and prove soundness of the resulting interpreter. Based on it, we have implemented a prototype of a tabled logic programming interpreter for Elf.
This work was partially supported by NSF Grant CCR-9988281.
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
W. Appel and A. P. Felty. A semantic model of types and machine instructions for proof-carrying code. In 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’ 00), pages 243–253, 2000.
I. Cervesato. A Linear Logical Framework. PhD thesis, Dipartimento di Informatica, Università di Torino, 1996.
I. Cervesato, J. S. Hodas, and F. Pfenning. Efficient resource management for linear logic proof search. Theoretical Computer Science, 232(1–2):133–163, 2000.
I. Cervesato and F. Pfenning. A linear spine calculus. In submitted, 2001.
W. Chen and D. S. Warren. Tabled evaluation with delaying for general logic programs. Journal of the ACM, 43(1):20–74, 1996.
B. Cui, Y. Dong, X. Du, K. N. Kumar, C. R. Ramakrishnan, I. V. Ramakrishnan, A. Roychoudhury, S. A. Smolka, and D. S. Warren. Logic programming and model checking. In Principles of Declarative Programming, volume 1490 of Lecture Notes in Computer Science, pages 1–20. Springer-Verlag, 1998.
J. Harland and D. Pym. Resource-distribution via boolean constraints. In Proceedings of the 14th International Conference on Automated Deduction (CADE-14), pages 222–236, Townsville, Australia, 1997. Springer-Verlag LNAI 1249.
J. Hodas and D. Miller. Logic programming in a fragment of intuitionistic linear logic. Information and Computation, 110(2):327–365, 1994.
D. Miller. Unification under a mixed prefix. Journal of Symbolic Computation, 14:321–358, 1992.
D. Miller, G. Nadathur, F. Pfenning, and A. Scedrov. Uniform proofs as a foundation for logic programming. Annals of Pure and Applied Logic, 51:125–157, 1991.
G. Nadathur and D. Miller. An overview of λProlog. In Fifth International Logic Programming Conference, pages 810–827, Seattle, Washington, 1988. MIT Press.
G. Necula and S. Rahul. Oracle-based checking of untrusted software. In 28th ACM Symposium on Principles of Programming Languages (POPL01), 2001.
L. C. Paulson. Natural deduction as higher-order resolution. Journal of Logic Programming, 3:237–258, 1986.
F. Pfenning. Elf: A language for logic definition and verified meta-programming. In Fourth Annual Symposium on Logic in Computer Science, pages 313–322, Pacific Grove, California, 1989. IEEE Computer Society Press.
F. Pfenning. Unification and anti-unification in the Calculus of Constructions. In Sixth Annual IEEE Symposium on Logic in Computer Science, pages 74–85, Amsterdam, Netherlands, 1991.
F. Pfenning. Computation and Deduction. Cambridge University Press, 2000. In preparation. Draft from April 1997 available electronically.
F. Pfenning. Intensionality, extensionality, and proof irrelevance in modal type theory. In 16th Annual IEEE Symposium on Logic in Computer Science, Boston, USA, 2001.
F. Pfenning and C. Elliott. Higher-order abstract syntax. In Proceedings of the ACM SIGPLAN’ 88 Symposium on Language Design and Implementation, pages199–208, Atlanta, Georgia, 1988.
F. Pfenning and C. Schürmann. System description: Twelf — a meta-logical framework for deductive systems. In Proceedings of the 16th International Conference on Automated Deduction (CADE-16), pages 202–206, Trento, Italy, 1999. Springer-Verlag LNAI 1632.
B. Pientka. Tabled higher-order logic programming. Thesis proposal, Carnegie Mellon University, 2002.
A. Roychoudhury, C. R. Ramakrishnan, and I. V. Ramakrishnan. Justifying proofs using memo tables. In International Conference on Principles and Practice of Declarative Programming(PPDP’00), pages 178–189, 2000.
K. Sagonas and T. Swift. An abstract machine for tabled execution of fixed-order stratified logic programs. ACM Transactions on Programming Languages and Systems, 20(3):586–634, 1998.
H. Tamaki and T. Sato. OLD resolution with tabulation. In E.. Shapiro, editor, Proceedings of the 3rd International Conference on Logic Programming, volume 225 of Lecture Notes in Computer Science, pages 84–98. Springer, 1986.
R. Virga. Higher-Order Rewriting with Dependent Types. PhD thesis, Department of Mathematical Sciences, Carnegie Mellon University, 2000.
D. S. Warren. Programming in tabled logic programming. draft available from http://www.cs.sunysb.edu/ warren/xsbbook/book.html, 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Pientka, B. (2002). A Proof-Theoretic Foundation for Tabled Higher-Order Logic Programming. In: Stuckey, P.J. (eds) Logic Programming. ICLP 2002. Lecture Notes in Computer Science, vol 2401. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45619-8_19
Download citation
DOI: https://doi.org/10.1007/3-540-45619-8_19
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43930-1
Online ISBN: 978-3-540-45619-3
eBook Packages: Springer Book Archive