An application of abstract interpretation of logic programs: Occur check reduction

  • Harald Søndergaard
Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 213)


The occur check in Robinson unification is superfluous in most unifications that take place in practice. The present paper is concerned with the problem of determining circumstances under which the occur check may be safely dispensed with. The method given draws on one outlined by David Plaisted. The framework, however, differs in that we systematically apply the abstract interpretation principle to logic programs. The aim is to give a clear presentation and to facilitate justification of the soundness of the method.

9. References

  1. Cousot, P. and R. Cousot, Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints, Proc. 4th ACM POPL Symp., Los Angeles, California (June 1977) 238–252Google Scholar
  2. Eder, E., Properties of substitutions and unifications, Journal of Symbolic Computation 1,1 (March 1985) 31–46Google Scholar
  3. Jones, N. D., P. Sestoft and H. Søndergaard, An experiment in partial evaluation: The generation of a compiler generator, in LNCS 202: Rewriting Techniques and Applications (ed. J.-P. Jouannaud), Springer Verlag (1985) 124–140Google Scholar
  4. Kowalski, R., A proof procedure using connection graphs, Journal of the ACM 22,4 (October 1975) 572–595Google Scholar
  5. Mellish, C. S., The Automatic Generation of Mode Declarations for Prolog Programs, DAI Research Paper no. 163, University of Edinburgh, Scotland (1981)Google Scholar
  6. Mellish, C. S., Abstract Interpretation of Prolog Programs, extended abstract presented at the Workshop on Abstract Interpretation of Declarative Languages, Canterbury, England (August 1985)Google Scholar
  7. Nielson, F., A denotational framework for data flow analysis, Acta Informatica 18 (1982) 265–287Google Scholar
  8. Plaisted, D., The occur-check problem in Prolog, Proc. Intl. Symp. Logic Programming, Atlantic City, New Jersey (February 1984) 272–280Google Scholar
  9. Robinson, J. A., A machine-oriented logic based on the resolution principle, Journal of the ACM 12,1 (January 1965) 23–41CrossRefGoogle Scholar
  10. Warren, D. H. D., Implementing Prolog — Compiling Predicate Logic Programs, DAI Research Report no. 39, University of Edinburgh, Scotland (1977)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Harald Søndergaard
    • 1
  1. 1.Dansk Datamatik CenterLyngbyDenmark

Personalised recommendations