Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Every logic program has a natural stratification and an iterated least fixed point model
PODS '89 Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Handbook of theoretical computer science (vol. B)
Acyclic logic programs and the completeness of SLDNF-resolution
Theoretical Computer Science
Unfold/fold transformation of stratified programs
Theoretical Computer Science
Strong termination of logic programs
Journal of Logic Programming
Reasoning about termination of pure Prolog programs
Information and Computation
Unfounded sets and well-founded semantics for general logic programs
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
An Equivalence Preserving First Order Unfold/fold Transformation System
Proceedings of the Second International Conference on Algebraic and Logic Programming
Totally correct logic program transformations via well-founded annotations
Higher-Order and Symbolic Computation
The transformational approach to program development
A 25-year perspective on logic programming
Hi-index | 0.00 |
An unfold/fold transformation system is a source-to-source rewriting methodology devised to improve the efficiency of a program. Any such transformation should preserve the main properties of the initial program: among them, termination. In the field of logic programming, the class of acyclic programs plays an important role in this respect, since it is closely related to the one of terminating programs. The two classes coincide when negation is not allowed in the bodies of the clauses.We prove that the Unfold/Fold transformation system defined by Tamaki and Sato preserves the acyclicity of the initial program. From this result, it follows that when the transformation is applied to an acyclic program, then the finite failure set for definite programs is preserved; in the case of normal programs, all major declarative and operational semantics are preserved as well. These results cannot be extended to the class of left-terminating programs without modifying the definition of the transformation.