On the occur-check-free PROLOG programs
- 1 May 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 16 (3) , 687-726
- https://doi.org/10.1145/177492.177673
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.Keywords
This publication has 11 references indexed in Scilit:
- Why the occur-check is not a problemPublished by Springer Nature ,2005
- Correctness of unification without occur check in prologThe Journal of Logic Programming, 1994
- A new definition of SLDNF-resolutionThe Journal of Logic Programming, 1994
- Average-case analysis of unification algorithmsTheoretical Computer Science, 1993
- A Completeness Result for SLDNF-ResolutionThe Journal of Logic Programming, 1993
- Unsolvable problems for SLDNF resolutionThe Journal of Logic Programming, 1991
- The occur-check problem revisitedThe Journal of Logic Programming, 1988
- An application of abstract interpretation of logic programs: Occur check reductionPublished by Springer Nature ,1986
- Relating logic programs and attribute grammarsThe Journal of Logic Programming, 1985
- An Efficient Unification AlgorithmACM Transactions on Programming Languages and Systems, 1982