Abstract
We present an implementation technique for a class of bottom-up logic procedures. The technique is called code trees. It is intended to speed up most important and costly operations, such as subsumption and resolution. As an example, we consider the forward subsumption problem which is the bottleneck of many systems implementing first order logic.
In order to efficiently implement subsumption, we specialize subsumption algorithms at run time, using the abstract subsumption machine. The abstract subsumption machine executes subsumption using sequences of instructions that are similar to the WAM instructions [31]. It gives an efficient implementation of the “clause at a time” subsumption problem. To implement subsumption on the “set at a time” basis we combine sequences of instructions in code trees.
We show that this technique yields a new way of indexing clauses. Some experimental results are given.
The code trees technique may be used in various procedures, including OLDT-resolution, SLD-AL-resolution, bottom-up evaluation of logic programs and disjunctive logic programs.
Supported by Swedish TFR grant no. 93-409
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
O.L. Astrakhan and M.E. Stickel. Caching and lemmaizing in model elimination theorem prover. In D. Kapur, editor, 11th International Conference on Automated Deduction, volume 607 of Lecture Notes in Artificial Intelligence, pages 224–239, Saratoga Springs, NY, USA, June 1992. Springer Verlag.
R. Barbuti, R. Giacobazzi, and G. Levi. A general framework for semantics-based bottom-up abstract interpretation of logic programs. ACM Transactions on Programming Languages and Systems, 15(1):133–181, 1993.
F. Bancilhon, D. Maier, Y. Sagiv, and J.D. Ullman. Magic sets and other strange ways to implement logic programs. In Proceedings of the 5th ACM SIGMOD-SIGACT Symposium on Principles of Database Systems, pages 1–15, Cambridge, MA, March 1986.
C. Beeri, Sh. Naqvi, R. Ramakrishnan, O. Shmueli, and Sh. Tsur. Sets and negation in a logic database language (LDL1). In Proc. 6th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pages 21–36. ACM Press, 1987.
C. Beeri and R. Ramakrishnan. On the power of Magic. In Proc. 6th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pages 269–283. ACM Press, 1987.
R.S. Boyer and J.S. Moore. The sharing of structure in theorem-proving programs. In B. Meltzer and D. Michie, editors, Machine Intelligence 7, pages 101–116. Edinburgh University Press, Edinburgh, 1972.
M. Codish and B. Demoen. Analyzing logic programs using “Prop”-ositional logic programs and a magic wand. In Dale Miller, editor, Logic Programming — Proceedings of the 1993 International Symposium, pages 114–129. The MIT Press, 1993.
S.K. Das. Deductive Databases and Logic Programming. Addison-Wesley, 1992.
H. Decker. Integrity enforcements on deductive databases. In Proc. of the 1st International Conference on Expert Database Systems, pages 271–285, Charleston, South Carolina, April 1986.
P. Graf. Path indexing for term retrieval. Technical Report MPI-I-92-237, Max-Planck Institut für Informatik, Saarbrücken, Germany, December 1992.
J.W. Lloyd, E.A. Sonenberg, and R.W. Topor. Integrity constraint checking in stratified databases. Technical Report 86/5, Department of Computer Science, University of Melbourne, 1986.
J.W. Lloyd and R.W. Topor. A basis for deductive database systems. Journal of Logic Programming, 2(2):93–109, 1985.
R. Manthey and F. Bry. SATCHMO: a theorem prover implemented in Prolog. In CADE'88 (9th Int. Conf. on Automated Deduction), Lecture Notes in Computer Science, pages 179–216, Argonne, Illinois, May 1988.
William W. McCune. An indexing method for finding more general formulas. Association for Automated Reasoning Newsletter, 1(9):7–8, 1988.
William W. McCune. OTTER 2.0 users guide. Technical report, Argonne National Laboratory, March 1990.
William W. McCune. Experiments with discrimination-tree in indexing and path indexing for term retrieval. Journal of Automated Reasoning, 9(2):147–167, 1992.
S.Yu. Maslov. An inverse method for establishing deducibility of nonprenex formulas of the predicate calculus. In J.Siekmann and G.Wrightson, editors, Automation of Reasoning (Classical papers on Computational Logic), volume 2, pages 48–54. Springer Verlag, 1983.
V. Neiman. Refutation search for horn sets by a subgoal-extraction method. Journal of Logic Programming, 9(2):267–284, 1990.
F.J. Pelletier. Seventy-five problems for testing automatic theorem provers. Journal of Automated Reasoning, 2(2):191–216, 1986.
J.A. Robinson. Automatic deduction with hyper-resolution. International Journal of Computer Mathematics, 1:227–234, 1965.
J.A. Robinson. A machine-oriented logic based on the resolution principle. Journal of the Association for Computing Machinery, 12(1):23–41, 1965.
G. Robinson and L.T. Wos. Paramodulation and theorem-proving in first order theories with equality. In Machine Intelligence, volume 4. Edinburgh University Press, Edinburgh, 1969.
M. Stickel. A PROLOG technology theorem prover: Implementation by an extended Prolog compiler. Journal of Automated Reasoning, (4):353–380, 1988.
M. Stickel. The path indexing method for indexing terms. Technical Report 473, Artificial Intelligence Center, SRI International, Menlo Park, CA, October 1989.
S. Sudarshan and R. Ramakrishnan. Optimizations of bottom-up evaluation with non-ground terms (extended abstract). In Dale Miller, editor, Logic Programming. Proceedings of the 1993 International Symposium, pages 557–574. The MIT Press, 1993.
H. Tamaki and T. Sato. OLDT resolution with tabulation. In International Conference on Logic Programming, pages 84–98, 1986.
Laurent Vieille. Recursive query processing: The power of logic. Theoretical Computer Science, 69:1–53, 1989.
A. Voronkov. LISS — the Logic Inference Search System. In Mark Stickel, editor, Proc. Int. Conf. on Automated Deduction, volume 449 of Lecture Notes in Computer Science, pages 677–678, Kaiserslautern, Germany, 1990. Springer Verlag.
A. Voronkov. Theorem proving in non-standard logics based on the inverse method. In D. Kapur, editor, 11th International Conference on Automated Deduction, volume 607 of Lecture Notes in Artificial Intelligence, pages 648–662, Saratoga Springs, NY, USA, June 1992. Springer Verlag.
A. Voronkov. The Anatomy of Vampire: Implementing Bottom-up Procedures with Code Trees. Submitted to Journal of Automated Reasoning, 1994.
David H. D. Warren. An abstract Prolog instruction set. SRI Tech. Note 309, SRI Intl., Menlo Park, Calif., 1983.
D.S. Warren. Memoing for logic programs. Communications of the ACM (invited paper), 35(3):93–111, 1992.
Larry Wos, Ross Overbeek, and Ewing Lusk. Subsumption, a sometimes undervalued procedure. In Jean-Louis Lassez and Gordon Plotkin, editors, Computational Logic. Essays in Honor of Alan Robinson., pages 3–40. The MIT Press, Cambridge, Massachusetts, 1991.
Larry Wos. Note on McCune's article on discrimination trees. Journal of Automated Reasoning, 9(2):145–146, 1992.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Voronkov, A. (1994). An implementation technique for a class of bottom-up procedures. In: Hermenegildo, M., Penjam, J. (eds) Programming Language Implementation and Logic Programming. PLILP 1994. Lecture Notes in Computer Science, vol 844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58402-1_12
Download citation
DOI: https://doi.org/10.1007/3-540-58402-1_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58402-5
Online ISBN: 978-3-540-48695-4
eBook Packages: Springer Book Archive