Abstract
The problem of solving equations is a key and challenging problem in many formalisms of integrating logic and functional programming, while narrowing is now a widely used mechanism for generating solutions. In this paper, we continue to investigate the problem of solving equations in O'Donnell's equational language. We define a restricted equality theory which we argue adequately captures the notion of first-order functional programming and permits an efficient implementation. In particular, we show that there exists a special class of narrowing derivations which generates complete and minimal sets of solutions.
Work supported by the Natural Sciences and Engineering Research Council of Canada.
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
Cartwright, R. and J. McCarthy, “Recursive programs as functions in a first order theory,” in Mathematical Studies of Information Processing, E.K. Blum et al. (eds.) LNCS 75.
Dershowitz, H. and D. Plaisted, “Logic programming cum applicative programming,” in Proc. 1985 Symposium on Logic Programming, Boston, Mass., July, 1985.
Dincbas, M. and P. van Hentenryck, “Extended unification algorithms for the integration of functional programming into logic programming,” Journal of Logic Programming, 1987.
van Emden, M.H. and K. Yukawa, “Logic programming with equality,” J. of Logic Programming, 4:265–288, 1986.
Fages, F and G. Huet, “Unification and matching in equational theories,” in Proc. CAAP '83, LNCS 159, pp. 205–220, 1983.
Fribourg, L., “SLOG: A logic programming language interpreter based on clausal superposition and rewriting,” in Proc. 1985 Symposium on Logic Programming, Boston, Mass.
Gallier J.H. and S. Raatz, “SLD-Resolution methods for Hom clauses with equality based on E-unification E-unification procedure,” in Proc. of 1986 Symposium on Logic Programming, SLC, Utah, pp. 168–179, 1986.
Gallier J.H. and W. Snyder, “A general complete E-unification procedure,” in Proc. of RTA '87, LNCS 256, pp. 216–227, 1987.
Goguen, J.A. and J.J. Tardo, “An introduction to OBJ: a language for writing and testing formal algebraic program specifications,” in Specification of Reliable Software, IEEE, pp 170–189, 1979.
Goguen, J.A. and J. Meseguer, “Equality, types, modules and generics for logic programming,” Journal of Logic Programming, Vol 2. 1984, pp 179–210.
Huet, G. and J-J. Lévy, “Call by need computations in nonambiguous linear term rewriting systems,” Technical Report, 359, INRIA, Le Chesnay, France, 1979.
Huet, G. and D.C. Oppen, “Equations and rewrite rules: a survey,” in Formal Language Theory: Perspectives and Open Problems, R.V. Book (ed.), pp. 349–405, Academic Press, New York, 1980.
Hullot, J.M., “Canonical forms and unification,” in Proc. 5th Conference on Automated Deduction, pp. 318–334, 1980.
Jaffar, J., J-L. Lassez and M. Maher, “A logic programming scheme,” in Logic Programming: Functions, Relations, and Equations, D. DeGroot and G. Lindstrom (eds.), Prentice-Hall, 1986.
Jaffar, J., J-L. Lassez and M. Maher, “Constraint logic programming,” in Proc. 14th POPL, pp. 111–119, Munich, West Germany, 1987.
Levi, G., C. Palamidessi, P. Bosco, E. Giovannetti and C. Moiso, “A complete semantic characterization of K-LEAF”, in Proc. 1987 Symposium on Logic Programming, pp. 318–327. San Francisco, California, September 1987.
Lloyd, J.W., Foundations of Logic Programming, Springer-Verlag, New York, 1984.
Martelli, A., and U. Montanari, “An efficient unification algorithm,” ACM Transaction on Programming Languages and Systems, Vol. 4, No. 2, pp. 258–282, 1982.
Martelli, A., C. Moiso and G.F. Rossi “An algorithm for unification in equational theories”, in Proc. 1986 International Symposium on Logic Programming, pp. 180–186, Salt Lake City, Utah, 1986.
Mishra, P. and U. Reddy, “Declaration-free type checking” in Proc. of 12th POPL, pp. 7–21, 1985.
O'Donnell, M., “Computing in systems described by equations,” Lecture notes in computer science, vol. 58, Springer-Verlag, New York, 1977.
O'Donnell, M., “Equational Logic as a Programming Language,” The MIT Press, Cambridge, Massachusetts, 1985.
Plotkin, G., “Building-in equational theories,” in Machine Intelligence 7, pp. 73–90, Edinburgh University Press, 1972.
Reddy, U., “Narrowing as the operational semantics of functional languages,” in Proc. 1985 Symposium on Logic Programming, pp. 138–151, Boston, Mass., July, 1985.
Réty P, C. Kirchner, H. Kirchner and P. Lescanne, “NARROWER: a new algorithm and its application to logic programming,” in Proc. Rewriting Techniques and Applications, also in Lecture Notes in Computer Science 202, pp. 141–157, 1985.
Réty P., “Improving basic narrowing techniques,” in Proc. Rewriting Techniques and Applications, Lecture Notes in Computer Science 256, pp. 228–241, 1987.
Siekmann, J., “Universal unification,” in Proc. 7th International Conference on Automated Deduction, pp. 1–42, Napa, California, May, 1984.
Stickel, M., “Automated deduction by theory resolution,” J. of Automated Reasoning, Vol. 2 1986. Short version in Proc. IJCAI-85, pp. 1181–1186, Aug. 18–23, Los Angeles, CA, 1985.
You, J-H. “Logic programming for artificial intelligence: an approach based on building-in theories,” Dept. of Computing Science, Univ. of Alberta, (a proposal), 1986.
You, J-H. and P.A. Subrahmanyam, “Equational logic programming: an extension to equational programming,” in Proc. ACM 13th POPL, pp. 209–218, St. Petersburg, Florida, January, 1986.
You, J-H. and P.A. Subrahmanyam, “A class of confluent term rewriting systems and unification,” in Journal of Automated Reasoning Vol. 2 (1986) 391–418.
You, J-H. “Outer narrowing for equational theories based on constructors,” in Proc. 15th ICALP, Tampere, Finland, July, 1988.
Yukawa, K., “Amalgamating functional and relational programming through the use of equality axioms,” Ph.D. Thesis, Dept. of Computer Science, Univ. of Waterloo, 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1988 Akademie-Verlag Berlin
About this paper
Cite this paper
You, JH. (1988). Solving equations in an equational language. In: Grabowski, J., Lescanne, P., Wechler, W. (eds) Algebraic and Logic Programming. ALP 1988. Lecture Notes in Computer Science, vol 343. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-50667-5_77
Download citation
DOI: https://doi.org/10.1007/3-540-50667-5_77
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-50667-6
Online ISBN: 978-3-540-46063-3
eBook Packages: Springer Book Archive