Skip to main content

An implementation technique for a class of bottom-up procedures

  • Conference paper
  • First Online:
  • 274 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 844))

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.

Unable to display preview. Download preview PDF.

References

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  8. S.K. Das. Deductive Databases and Logic Programming. Addison-Wesley, 1992.

    Google Scholar 

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

    Google Scholar 

  10. P. Graf. Path indexing for term retrieval. Technical Report MPI-I-92-237, Max-Planck Institut für Informatik, Saarbrücken, Germany, December 1992.

    Google Scholar 

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

    Google Scholar 

  12. J.W. Lloyd and R.W. Topor. A basis for deductive database systems. Journal of Logic Programming, 2(2):93–109, 1985.

    Google Scholar 

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

    Google Scholar 

  14. William W. McCune. An indexing method for finding more general formulas. Association for Automated Reasoning Newsletter, 1(9):7–8, 1988.

    Google Scholar 

  15. William W. McCune. OTTER 2.0 users guide. Technical report, Argonne National Laboratory, March 1990.

    Google Scholar 

  16. William W. McCune. Experiments with discrimination-tree in indexing and path indexing for term retrieval. Journal of Automated Reasoning, 9(2):147–167, 1992.

    Google Scholar 

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

    Google Scholar 

  18. V. Neiman. Refutation search for horn sets by a subgoal-extraction method. Journal of Logic Programming, 9(2):267–284, 1990.

    Google Scholar 

  19. F.J. Pelletier. Seventy-five problems for testing automatic theorem provers. Journal of Automated Reasoning, 2(2):191–216, 1986.

    Google Scholar 

  20. J.A. Robinson. Automatic deduction with hyper-resolution. International Journal of Computer Mathematics, 1:227–234, 1965.

    Google Scholar 

  21. J.A. Robinson. A machine-oriented logic based on the resolution principle. Journal of the Association for Computing Machinery, 12(1):23–41, 1965.

    Google Scholar 

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

    Google Scholar 

  23. M. Stickel. A PROLOG technology theorem prover: Implementation by an extended Prolog compiler. Journal of Automated Reasoning, (4):353–380, 1988.

    Google Scholar 

  24. M. Stickel. The path indexing method for indexing terms. Technical Report 473, Artificial Intelligence Center, SRI International, Menlo Park, CA, October 1989.

    Google Scholar 

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

    Google Scholar 

  26. H. Tamaki and T. Sato. OLDT resolution with tabulation. In International Conference on Logic Programming, pages 84–98, 1986.

    Google Scholar 

  27. Laurent Vieille. Recursive query processing: The power of logic. Theoretical Computer Science, 69:1–53, 1989.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  30. A. Voronkov. The Anatomy of Vampire: Implementing Bottom-up Procedures with Code Trees. Submitted to Journal of Automated Reasoning, 1994.

    Google Scholar 

  31. David H. D. Warren. An abstract Prolog instruction set. SRI Tech. Note 309, SRI Intl., Menlo Park, Calif., 1983.

    Google Scholar 

  32. D.S. Warren. Memoing for logic programs. Communications of the ACM (invited paper), 35(3):93–111, 1992.

    Google Scholar 

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

    Google Scholar 

  34. Larry Wos. Note on McCune's article on discrimination trees. Journal of Automated Reasoning, 9(2):145–146, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manuel Hermenegildo Jaan Penjam

Rights and permissions

Reprints 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

Publish with us

Policies and ethics