Selective backtracking for logic programs

  • Luís Moniz Pereira
  • António Porto
Friday Morning
Part of the Lecture Notes in Computer Science book series (LNCS, volume 87)


We present a selective backtracking method for Horn clause programs, as applied to Prolog (2)(6)(11)(12), a programming language based on first-order predicate calculus (3)(4), developed at the university of Marseille (10).

This method is based on the general method expounded in (7) for backtracking intelligently in AND/OR trees. It consists, essentially, in avoiding backtracking to any goal whose alternative solutions cannot possibly prevent the repetition of the failures which caused backtracking.

This is a renewed version of an earlier report (8), which was spurred by the work of Bruynooghe (1).

In (9) we present an implementation of a selective backtracking interpreter using the methods discussed in this paper.


Logic Program Horn Clause Line Point Goal Variable Parent Goal 
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).
    Bruynooghe, M. Intelligent backtracking for Horn clause logic programs Colloquium on Mathematical Logic in Programming Salgotarjan, Hungary 1978Google Scholar
  2. (2).
    Coelho, H.; Cotta, J.C.; Pereira, L.M. How to solve it with Prolog Laboratório Nacional de Engenharia Civil, Lisboa 1979Google Scholar
  3. (3).
    Kowalski, R.A. Predicate logic as a programming language IFIP 74, pp 569–574, North-Holland Publ. Co. 1974Google Scholar
  4. (4).
    Kowalski, R.A. Logic for problem solving North-Holland Publ. Co. 1980Google Scholar
  5. (5).
    Loveland, D. Automated theorem proving: a logical basis North-Holland Publ. Co. 1978Google Scholar
  6. (6).
    Pereira, L.M.; Pereira, F.C.N.; Warren, D.H.D. User's guide to DECsystem-10 Prolog Laboratório Nacional de Engenharia Civil, Lisboa 1978Google Scholar
  7. (7).
    Pereira, L.M. Backtracking intelligently in AND/OR trees Departamento de Informática Universidade Nova de Lisboa, Lisboa 1979Google Scholar
  8. (8).
    Pereira, L.M.; Porto, A. Intelligent backtracking and sidetracking in Horn clause programs — the theory Departamento de Informática Universidade Nova de Lisboa, Lisboa 1979Google Scholar
  9. (9).
    Pereira, L.M.; Porto, A. An interpreter of logic programs using selective backtracking Paper submitted to the Workshop on Logic Programming, organized by the von Neumann Computer Society, Budapest July 1980Google Scholar
  10. (10).
    Roussel, P. Prolog: manuel de réfèrence et d'utilisation Groupe d'Intelligence Artificielle, Université d'Aix-Marseille II 1975Google Scholar
  11. (11).
    Warren, D.H.D. Implementing Prolog, Parts I and II Department of Artificial Intelligence Edinburgh University 1977Google Scholar
  12. (12).
    Warren, D.H.D.; Pereira, L.M.; Pereira, F.C.N. Prolog, the language and its implementation compared with Lisp ACM Symposium on Artificial Intelligence and Programming Languages, Sigart Newsletter no. 64, and Sigplan Notices vol. 12, no. 8, August 1977Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1980

Authors and Affiliations

  • Luís Moniz Pereira
    • 1
  • António Porto
    • 1
  1. 1.Departamento de InformáticaUniversidade Nova de LisboaLisboaPortugal

Personalised recommendations