On the occur-check free Prolog programs

Open Access
Authors
Publication date 05-1994
Journal ACM Transactions on Programming Languages and Systems
Volume | Issue number 16 | 3
Pages (from-to) 687-726
Organisations
  • Interfacultary Research - Institute for Logic, Language and Computation (ILLC)
Abstract
In most PROLOG implementations, for efficiency occur-check is omitted from the unification algorithm. This paper provides natural syntactic conditions that allow the occur-check to be safely omitted. The established results apply to most well-known PROLOG programs, including those that use difference lists, and seem to explain why this omission does not lead in practice to any complications. When applying these results to general programs, we show their usefulness for proving absence of floundering. Finally, we propose a program transformation that transforms every program into a program for which only the calls to the built-in unification predicate need to be resolved by a unification algorithm with the occur-check.
Document type Article
Language English
Published at https://doi.org/10.1145/177492.177673
Downloads
On the occur-check-free PROLOG programs (Final published version)
Permalink to this page
Back