A rewriting logic for declarative programming

  • J. C. González-Moreno
  • M. T. Hortalá-González
  • F. J. López-Fraguas
  • M. Rodríguez-Artalejo
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1058)


We propose an approach to declarative programming which integrates the functional and relational paradigms by taking possibly non-deterministic lazy functions as the fundamental notion. Programs in our paradigm are theories in a constructor-based conditional rewriting logic. We present proof calculi and a model theory for this logic, and we prove the existence of free term models which provide an adequate intended semantics for programs. Moreover, we develop a sound and strongly complete lazy narrowing calculus, which is able to support sharing without the technical overhead of graph rewriting and to identify safe cases for eager variable elimination.


Declarative programming non-deterministic functions constructor-based rewriting logic lazy narrowing 


  1. 1.
    S. Antoy, R. Echahed, and M. Hanus. A Needed Narrowing Strategy. Proc. 21st ACM Symp. on Princ. of Prog. Lang., Portland, pp. 268–279, 1994.Google Scholar
  2. 2.
    P. Arenas-Sánchez and A. Gil-Luezas. BabLog User's Manual. Tech. Rep. DIA 94/12, 1994.Google Scholar
  3. 3.
    N. Dershowitz and Z. Manna: Proving Termination with Multiset Orderings. Comm. of the ACM 22(8), 1979, 465–476.Google Scholar
  4. 4.
    M. Falaschi, G. Levi, M. Martelli and C. Palamidessi. A Model-Theoretic Reconstruction of the Operational Semantics of Logic Programs. Information and Computation, 102(1), pp. 86–113, 1993.Google Scholar
  5. 5.
    E. Giovannetti, G. Levi, C. Moiso and C. Palamidessi. Kernel-LEAF: A Logic plus Functional Language. JCSS 42 (2), pp. 139–185, 1991.Google Scholar
  6. 6.
    J. A. Goguen, J. W. Thatcher, E. G. Wagner and J. B. Wright. Initial Algebra Semantics and Continuous Algebras. Journal of the ACM 24(1), pp. 68–95, 1977.Google Scholar
  7. 7.
    J. C. González-Moreno, M. T. Hortalá-González and M. Rodríguez-Artalejo. On the completeness of Narrowing as the Operational Semantics of Functional Logic Programming. Proc. CSL'92, Springer LNCS 702, pp. 216–230, 1993.Google Scholar
  8. 8.
    J. C. González-Moreno, M. T. Hortalá-González, F.J. López-Fraguas and M. Rodríguez-Artalejo. A Rewriting Logic for Declarative Programming, Tech. Rep. DIA 95/10, 1995.Google Scholar
  9. 9.
    J. C. González-Moreno. A Correctness Proof for Warren's HO into FO Translation. Proc. GULP'93, Gizzeria (CZ), Italy, 1993.Google Scholar
  10. 10.
    M. Hanus. The Integration of Functions into Logic Programming: A Survey. JLP (19&20). Special issue “Ten Years of Logic Programming”, pp. 583–628, 1994.Google Scholar
  11. 11.
    M. Hanus. Lazy Unification with Simplification. Proc. ESOP'94, Springer LNCS 778, pp. 272–286, 1994.Google Scholar
  12. 12.
    M. Hanus. Combining Lazy Narrowing and Simplification. Proc. PLILP'94, Springer LNCS 844, pp. 370–384, 1994.Google Scholar
  13. 13.
    H. Hussmann. Non-determinism in Algebraic Specifications and Algebraic Programs. Birkhäuser Verlag, 1993.Google Scholar
  14. 14.
    R. Loogen, F.J.López-Fraguas and M.Rodríguez-Artalejo. A Demand Driven Computation Strategy for Lazy Narrowing. Proc. PLILP'93, Springer LNCS 714, pp. 184–200, 1993.Google Scholar
  15. 15.
    R. Loogen and S. Winkler. Dynamic detection of determinism in functional logic languages. TCS 142, pp. 59–87, 1995.Google Scholar
  16. 16.
    F. J. López-Fraguas. Programación Funcional y Lógica con Restricciones. PhD Thesis, Univ. Complutense Madrid, 1994. (In Spanish)Google Scholar
  17. 17.
    J. Meseguer. Conditional rewriting logic as a unified model of concurrency. TCS 96, pp. 73–155, 1992.Google Scholar
  18. 18.
    B. Möller. On the Algebraic Specification of Infinite Objects — Ordered and Continuous Models of Algebraic Types. Acta Informatica 22, pp. 537–578, 1985.Google Scholar
  19. 19.
    A. Middeldorp and E. Hamoen. Completeness Results for Basic Narrowing. Applicable Algebra in Engineering, Comm. and Comp. 5, pp. 213–253, 1994.Google Scholar
  20. 20.
    J. J. Moreno-Navarro and M. Rodríguez-Artalejo. Logic Programming with Functions and Predicates: The Language BABEL. JLP 12, pp. 191–223, 1992.Google Scholar
  21. 21.
    S. Okui, A. Middeldorp and T. Ida. Lazy Narrowing: Strong Completeness and Eager Variable Elimination. Proc. CAAP'95, Springer LNCS 915, pp. 394–408, 1995.Google Scholar
  22. 22.
    C. Prehofer. A Call-by-Need Strategy for Higher-Order Functional Logic Programming. Proc. ILPS'95, MIT Press, pp. 147–161, 1995.Google Scholar
  23. 23.
    A. Sarmiento-Escalona. Una aproximación a la Programación Lógica con Funciones Indeterministas, PhD Thesis, Univ. La Coruña, 1992. (In Spanish)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • J. C. González-Moreno
    • 1
  • M. T. Hortalá-González
    • 1
  • F. J. López-Fraguas
    • 1
  • M. Rodríguez-Artalejo
    • 1
  1. 1.Dpto. de Informática y Automática, Fac. MatemáticasUCMMadridSpain

Personalised recommendations