Semantics for logic programs without occur check

  • W. P. Weijland
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 317)


For reasons of efficiency, in almost all implementations of Prolog the occur check is left out. This mechanism should protect the program against introducing circular bindings of variables. In practice the occur check is very expensive, however, and it is left to the skills of the user, to avoid these circular bindings in the program. In this paper a semantics of Prolog without occur check is introduced. The new kind of resolution, i.e. SLD-resolution without occur check, is referred to as CSLD-resolution. Important theorems such as soundness and completeness of both CSLD-resolution and the ‘negation as failure’ rule, are established.


Logic Program Predicate Symbol Completeness Theorem Answer Specification Constraint Logic Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Apt, K.R. & van Emden, M.H., Contributions to the Theory of Logic Programming, JACM,29,3 (july 1982),841–862.Google Scholar
  2. [2]
    Colmerauer, A., Prolog and Infinite Trees, Clark and Tarnlund (eds.), Logic Programming, Academic Press, New York, 1982, pp.231–251.Google Scholar
  3. [3]
    Colmerauer, A., Prolog II Reference Manual and Theoretical Model, Groupe Intelligence Artificielle, Faculté des Sciences de Luming, Marseille, 1982.Google Scholar
  4. [4]
    Courcelle, B., Fundamental Properties of Infinite Trees, Theoretical Computer Science, 25(2), pp.95–169, March 1983.Google Scholar
  5. [5]
    van Emden, M.H. & Kowalski, R.A., The Semantics of Predicate Logic as a Programming Language, JACM,23,4 (October 1976),733–742.Google Scholar
  6. [6]
    van Emden, M.H. & Lloyd, J.W., A Logical Reconstruction of Prolog II, Journal of Logic Programming, 1(2), pp.143–150, august 1984.Google Scholar
  7. [7]
    Jaffar, J. & Lassez, J-L., Constraint Logic Programming, proc. POPL, pp. 111–119, Munich 1987.Google Scholar
  8. [8]
    Jaffar, J., Lassez, J-L. & Maher, M.J., Prolog II as an instance of the Logic Programming Language Scheme, M. Wirsing (ed.), proc. IFIP conf., North Holland, 1987.Google Scholar
  9. [9]
    Jaffar, J., Lassez, J-L. & Lloyd, J.W., Completeness of the Negation as Finite Failure Rule, IJCAI-83, Karlsruhe, 1983, 500–506.Google Scholar
  10. [10]
    Jaffar, J. & Stuckey, P., Semantics of Infinite Tree Logic Programming, TCS, vol 46, pp. 141–158, 1986.Google Scholar
  11. [11]
    Levi, G. & Palamidessi, C., Contributions to the Semantics of Logic Perpetual Processes, draft manuscript, Dipartimento di Informatica, Università di Pisa, Italy, 1987.Google Scholar
  12. [12]
    Lloyd, J.W., Foundations of Logic Programming, Springer Verlag, Heidelberg, 1984.Google Scholar
  13. [13]
    Maher, M.J., Logic Semantics for a Class of Committed-choice Programs, Proc. 4th. Int. Conf. on Logic Programming, Melbourne, pp. 858–876, 1987.Google Scholar
  14. [14]
    Plaisted, D.A., The Occur-Check Problem in Prolog, Int. Symp. on Logic Programming, Atlantic City, 1984, 272–280.Google Scholar
  15. [15]
    Wolfram, D.A., Maher, M.J. & Lassez, J-L., A Unified Treatment of Resolution Strategies for Logic Programs, Second International Logic Programming Conference, Uppsala, 1984, 263–276.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • W. P. Weijland
    • 1
  1. 1.Centre for Mathematics and Computer ScienceAmsterdam

Personalised recommendations