Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Handbook of theoretical computer science (vol. B)
Unfold/fold transformation of stratified programs
Theoretical Computer Science
Total correctness by local improvement in the transformation of functional programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Transformations of CLP modules
Theoretical Computer Science
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Unfold/Fold Transformations For Definite Clause Programs
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
A Transformation System for Definite Programs Based on Termination Analysis
LOPSTR '94/META '94 Proceedings of the 4th International Workshops on Logic Programming Synthesis and Transformation - Meta-Programming in Logic
Preserving Universal Termination through Unfold/Fold
ALP '94 Proceedings of the 4th International Conference on Algebraic and Logic Programming
An unfold/fold transformation framework for definite logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A theory of totally correct logic program transformations
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The transformational approach to program development
A 25-year perspective on logic programming
Hi-index | 0.00 |
The many approaches which have been proposed in the literature for proving the correctness of unfold/fold program transformations, consist in associating suitable well-founded orderings with the proof trees of the atoms belonging to the least Herbrand models of the programs. In practice, these orderings are given by 'clause measures', that is, measures associated with the clauses of the programs to be transformed. In the unfold/fold transformation systems proposed so far, clause measures are fixed in advance, independently of the transformations to be proved correct. In this paper we propose a method for the automatic generation of the clause measures which, instead, takes into account the particular program transformation at hand. During the transformation process we construct a system of linear equations and inequations whose unknowns are the clause measures to be found, and the correctness of the transformation is guaranteed by the satisfiability of that system. Through some examples we show that our method is able to establish in a fully automatic way the correctness of program transformations which, by using other methods, are proved correct at the expense of fixing sophisticated clause measures.