Abstract
More specific versions of definite logic programs are introduced. These are versions of a program in which each clause is further instantiated or removed and which have an equivalent set of successful derivations to those of the original program, but a possibly increased set of finitely failed goals. They are better than the original program because failure in a non-successful derivation may be detected more quickly. Furthermore, information about allowed variable bindings which is hidden in the original program may be made explicit in a more specific version of it. This allows better static analysis of the program's properties and may reveal errors in the original program. A program may have several more specific versions but there is always a most specific version which is unique up to variable renaming. Methods to calculate more specific versions are given and it is characterized when they give the most specific version.
Original language | English |
---|---|
Pages (from-to) | 303-338 |
Number of pages | 36 |
Journal | Annals of Mathematics and Artificial Intelligence |
Volume | 1 |
Issue number | 1-4 |
DOIs | |
Publication status | Published - 1 Sept 1990 |
Externally published | Yes |
Keywords
- Logic programs
- specific logic programs