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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Jaffar, J., Maher, M.: Constraint logic programming: A survey. Journal of Logic Programming 19/20, 503–581 (1994)
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)
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)
Burstall, R.M., Darlington, J.: A transformation system for developing recursive programs. Journal of the ACM 24(1), 44–67 (1977)
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)
Maher, M.J.: A transformation system for deductive database modules with perfect model semantics. Theoretical Computer Science 110, 377–403 (1993)
Etalle, S., Gabbrielli, M.: Transformations of CLP modules. Theoretical Computer Science 166, 101–146 (1996)
Bensaou, N., Guessarian, I.: Transforming constraint logic programs. Theoretical Computer Science 206, 81–125 (1998)
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)
Lloyd, J.W.: Foundations of Logic Programming, 2nd edn. Springer, Heidelberg (1987)
Schrijver, A.: Theory of Linear and Integer Programming. J. Wiley & Sons, Chichester (1986)
Weispfenning, V.: The complexity of linear problems in fields. J. Symb. Comput. 5(1-2), 3–27 (1988)
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)
Terese: Term Rewriting Systems. Cambridge University Press (2003)
Senni, V.: Transformation Techniques for Constraint Logic Programs with Application to Protocol Verification. PhD thesis, University of Rome “Tor Vergata”, Rome, Italy (2008)
Benanav, D., Kapur, D., Narendran, P.: Complexity of matching problems. Journal of Symbolic Computation 3(1-2), 203–216 (1987)
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)
Stickel, M.E.: A unification algorithm for associative-commutative functions. J. ACM 28(3), 423–434 (1981)
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)
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)
The MAP transformation system, http://www.iasi.cnr.it/~proietti/system.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)