On the design of a correct freeness analysis for logic programs

Michael Codish, Dennis Dams, Gilberto Filé, Maurice Bruynooghe

Research output: Contribution to journalArticlepeer-review

10 Scopus citations


Several proposals for computing freeness information for logic programs have been put forward in the recent literature. The availability of such information has proven useful in a variety of applications, including parallelization of Prolog programs, optimizations in Prolog compilers, as well as for improving the precision of other analyses. While these proposals have illustrated the importance of such analyses, they lack formal justification. Moreover, several have been found incorrect. This paper introduces a novel domain of abstract equation systems describing possible sharing and definite freeness of terms in a system of equations. A simple and intuitive abstract unification algorithm is presented, providing the core of a correct and precise sharing and freeness analysis for logic programs. Our contribution is not only a correct algorithm, but perhaps primarily, the application of a systematic approach in which it is derived by mimicking each step in a suitable concrete unification algorithm. Consequently, the abstract algorithm is intuitive - as it resembles the concrete algorithm. It is amenable to formal justification - as the proof of correctness is reduced to showing that each step in the concrete algorithm is mimicked by a corresponding step in the abstract algorithm. Finally, it is precise -as each step mimics only those situations which can arise in the concrete algorithm.

Original languageEnglish
Pages (from-to)181-206
Number of pages26
JournalJournal of Logic Programming
Issue number3
StatePublished - 1 Jan 1996

ASJC Scopus subject areas

  • Logic


Dive into the research topics of 'On the design of a correct freeness analysis for logic programs'. Together they form a unique fingerprint.

Cite this