Limits for automatic verification of finite-state concurrent systems
Information Processing Letters
OLD resolution with tabulation
Proceedings on Third international conference on logic programming
Unfold/fold program transformations
Algebraic methods in semantics
Automatic inductive theorem proving using PROLOG
Theoretical Computer Science
A method for specializing logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Preservation of stronger equivalence in unfold/fold logic program transformation
Theoretical Computer Science - Special issue on the international conference on fifth generation computer systems. Tokyo, 1988
Unfold/fold transformation of stratified programs
Theoretical Computer Science
Equivalence-preserving first-order unfold/fold transformation systems
Theoretical Computer Science - Selected papers of the Second International Conference on algebraic and logic programming, Nancy, France, October 1–3, 1990
A transformation system for deductive database modules with perfect model semantics
Theoretical Computer Science
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Journal of Symbolic Computation - Special issue on automatic programming
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
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
Reducing nondeterminism while specializing logic programs
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transforming constraint logic programs
Theoretical Computer Science
Proving Theorems about LISP Functions
Journal of the ACM (JACM)
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Model checking
Induction = I-axiomatization + first-order consistency
Information and Computation - Special issue on RTA-98
Transformations of CCP programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Foundations of Logic Programming
Foundations of Logic Programming
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Unfold/fold Transformations Preserving Termination Properties
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
Preserving Universal Termination through Unfold/Fold
ALP '94 Proceedings of the 4th International Conference on Algebraic and Logic Programming
Proceedings of the 10th International Conference on Automated Deduction
A Theorem Prover for a Computational Logic
Proceedings of the 10th International Conference on Automated Deduction
Formulation of Induction Formulas in Verification of Prolog Programs
Proceedings of the 8th International Conference on Automated Deduction
Program transformations for verifying parameterized systems
Program transformations for verifying parameterized systems
A theory of totally correct logic program transformations
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Distillation: extracting the essence of programs
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Totally correct logic program transformations via well-founded annotations
Higher-Order and Symbolic Computation
A Coinduction Rule for Entailment of Recursively Defined Properties
CP '08 Proceedings of the 14th international conference on Principles and Practice of Constraint Programming
Automatic correctness proofs for logic program transformations
ICLP'07 Proceedings of the 23rd international conference on Logic programming
The transformational approach to program development
A 25-year perspective on logic programming
On inductive proofs by extended unfold/fold transformation rules
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Distillation with labelled transition systems
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
On inductive and coinductive proofs via unfold/fold transformations
LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
Specialization of concurrent guarded multi-set transformation rules
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Determinization of conditional term rewriting systems
Theoretical Computer Science
Hi-index | 0.00 |
Given a logic program P, an unfold/fold program transformation system derives a sequence of programs P = P0, P1, …, Pn, such that Pi+1 is derived from Pi by application of either an unfolding or a folding step. Unfold/fold transformations have been widely used for improving program efficiency and for reasoning about programs. Unfolding corresponds to a resolution step and hence is semantics-preserving. Folding, which replaces an occurrence of the right hand side of a clause with its head, may on the other hand produce a semantically different program. Existing unfold/fold transformation systems for logic programs restrict the application of folding by placing (usually syntactic) conditions that are sufficient to guarantee the correctness of folding. These restrictions are often too strong, especially when the transformations are used for reasoning about programs. In this article we develop a transformation system (called SCOUT) for definite logic programs that is provably more powerful (in terms of transformation sequences allowed) than existing transformation systems. This extra power is needed for a novel use of logic program transformations: for the verification of a specific class of concurrent systems, called parameterized concurrent systems.Our transformation system is constructed by developing a framework, which is parameterized by a "measure space" and associated measure functions. This framework places no syntactic restriction on the application of folding, and it can be used to derive transformation systems (by fixing the measure space and functions). The power of the system is determined by the choice of the measure space and functions; thus the relative power of different transformation systems can be compared by considering their measure spaces and functions. The correctness of these transformation systems follows from the correctness of the framework. We show that various existing transformation systems can be obtained as instances of our framework. We extend the unfold/fold transformation framework with a goal replacement transformation that allows semantically equivalent conjunctions of atoms to be interchanged. We then derive a new transformation system SCOUT as an instance of the framework and show its power relative to the existing transformation systems. SCOUT has been used to inductively prove temporal properties of parameterized concurrent systems (infinite families of finite state concurrent systems). We demonstrate the use of the additional power of SCOUT in constructing such induction proofs.