Skip to main content

A Folding Algorithm for Eliminating Existential Variables from Constraint Logic Programs

  • Conference paper
Logic Programming (ICLP 2008)

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

Included in the following conference series:

  • 1148 Accesses

Abstract

The existential variables of a clause in a constraint logic program are the variables which occur in the body of the clause and not in its head. The elimination of these variables is a transformation technique which is often used for improving program efficiency and verifying program properties. We consider a folding transformation rule which ensures the elimination of existential variables and we propose an algorithm for applying this rule in the case where the constraints are linear inequations over rational or real numbers. The algorithm combines techniques for matching terms modulo equational theories and techniques for solving systems of linear inequations. We show that an implementation of our folding algorithm performs well in practice.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. Jaffar, J., Maher, M.: Constraint logic programming: A survey. Journal of Logic Programming 19/20, 503–581 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  2. Proietti, M., Pettorossi, A.: Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. Theo. Comp. Sci. 142(1), 89–124 (1995)

    Article  MathSciNet  MATH  Google Scholar 

  3. Pettorossi, A., Proietti, M., Senni, V.: Proving properties of constraint logic programs by eliminating existential variables. In: Etalle, S., Truszczyński, M. (eds.) ICLP 2006. LNCS, vol. 4079, pp. 179–195. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Burstall, R.M., Darlington, J.: A transformation system for developing recursive programs. Journal of the ACM 24(1), 44–67 (1977)

    Article  MathSciNet  MATH  Google Scholar 

  5. Tamaki, H., Sato, T.: Unfold/fold transformation of logic programs. In: Tärnlund, S.Å. (ed.) Proc. ICLP 1984, pp. 127–138. Uppsala University, Uppsala (1984)

    Google Scholar 

  6. Maher, M.J.: A transformation system for deductive database modules with perfect model semantics. Theoretical Computer Science 110, 377–403 (1993)

    Article  MathSciNet  MATH  Google Scholar 

  7. Etalle, S., Gabbrielli, M.: Transformations of CLP modules. Theoretical Computer Science 166, 101–146 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  8. Bensaou, N., Guessarian, I.: Transforming constraint logic programs. Theoretical Computer Science 206, 81–125 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  9. Fioravanti, F., Pettorossi, A., Proietti, M.: Transformation rules for locally stratified constraint logic programs. In: Lau, K.K., Bruynooghe, M. (eds.) Program Development in Computational Logic. LNCS, vol. 3049, pp. 292–340. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  10. Lloyd, J.W.: Foundations of Logic Programming, 2nd edn. Springer, Heidelberg (1987)

    Book  MATH  Google Scholar 

  11. Schrijver, A.: Theory of Linear and Integer Programming. J. Wiley & Sons, Chichester (1986)

    MATH  Google Scholar 

  12. Weispfenning, V.: The complexity of linear problems in fields. J. Symb. Comput. 5(1-2), 3–27 (1988)

    Article  MathSciNet  MATH  Google Scholar 

  13. Baader, F., Snyder, W.: Unification theory. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, vol. I, pp. 445–532. Elsevier Science, Amsterdam (2001)

    Chapter  Google Scholar 

  14. Terese: Term Rewriting Systems. Cambridge University Press (2003)

    Google Scholar 

  15. Senni, V.: Transformation Techniques for Constraint Logic Programs with Application to Protocol Verification. PhD thesis, University of Rome “Tor Vergata”, Rome, Italy (2008)

    Google Scholar 

  16. Benanav, D., Kapur, D., Narendran, P.: Complexity of matching problems. Journal of Symbolic Computation 3(1-2), 203–216 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  17. Livesey, M., Siekmann, J.: Unification of A+C Terms (Bags) and A+C+I Terms (Sets). TR 3/76, Institut für Informatik I, Universität Karlsruhe (1976)

    Google Scholar 

  18. Stickel, M.E.: A unification algorithm for associative-commutative functions. J. ACM 28(3), 423–434 (1981)

    Article  MathSciNet  MATH  Google Scholar 

  19. Bürckert, H.J.: Some relationships between unification, restricted unification, and matching. In: Siekmann, J.H. (ed.) CADE 1986. LNCS, vol. 230, pp. 514–524. Springer, Heidelberg (1986)

    Chapter  Google Scholar 

  20. Ringeissen, C.: Matching in a class of combined non-disjoint theories. In: Baader, F. (ed.) CADE 2003. LNCS, vol. 2741, pp. 212–227. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  21. The MAP transformation system, http://www.iasi.cnr.it/~proietti/system.html

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Senni, V., Pettorossi, A., Proietti, M. (2008). A Folding Algorithm for Eliminating Existential Variables from Constraint Logic Programs. In: Garcia de la Banda, M., Pontelli, E. (eds) Logic Programming. ICLP 2008. Lecture Notes in Computer Science, vol 5366. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89982-2_29

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89982-2_29

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89981-5

  • Online ISBN: 978-3-540-89982-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics