Results 11  20
of
37
Beyond TamakiSato Style Unfold/Fold Transformations for Normal Logic Programs
 IN ASIAN, LNCS 1742
, 1999
"... Unfold/fold transformation systems for logic programs have been extensively investigated. Existing unfold/fold transformation systems for normal logic programs allow only TamakiSato style folding using clauses from a previous program in the transformation sequence: i.e., they fold using a singl ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
Unfold/fold transformation systems for logic programs have been extensively investigated. Existing unfold/fold transformation systems for normal logic programs allow only TamakiSato style folding using clauses from a previous program in the transformation sequence: i.e., they fold using a single, nonrecursive clause. In this paper we present a transformation system that permits folding in the presence of recursion, disjunction, as well as negation. We show that the transformations are correct with respect to various semantics of negation including the wellfounded model and stable model semantics.
Transforming Acyclic Programs
 ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1993
"... An Unfold/Fold transformation system is a sourcetosource 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. To this end, in the field of logic programming, the class of ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
An Unfold/Fold transformation system is a sourcetosource 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. To this end, in the field of logic programming, the class of acyclic programs plays an important role, as 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. In this paper it is proven that the Unfold/Fold transformation system defined by Tamaki and Sato preserves the acyclicity of the initial program. As corollaries, it follows that when the transformation is applied to an acyclic program, then 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 definitio...
Unfold/fold transformations preserving termination properties. To appear as a technical report from DAIMI
, 1992
"... Abstract. The unfold/fold framework constitutes the spine of many program transformation strategies. However, by unrestricted use of folding the target program may terminate less often than the source program. Several authors have investigated the problem of setting up conditions of syntactic nature ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
Abstract. The unfold/fold framework constitutes the spine of many program transformation strategies. However, by unrestricted use of folding the target program may terminate less often than the source program. Several authors have investigated the problem of setting up conditions of syntactic nature, i.e. not based on some wellfounded ordering of the arguments, which guarantee preservation of termination properties. These conditions are typically formulated in a way which makes it hard to grasp the basic intuition why they work, and in a way which makes it hard to give elegant proofs of correctness. The aim of this paper will be to give a more unified treatment by setting up a model which enables us to reason about termination preservation in a cleaner and more algebraic fashion. The model resembles a logic language and is parametrized with respect to evaluation order, but it should not be too difficult to transfer the ideas to other languages. 1
Replacement Can Preserve Termination
"... We consider the replacement transformation operation, a very general and powerful transformation, and study under which conditions it preserves universal termination besides computed answer substitutions. With this safe replacement we can significantly extend the safe unfold/fold transformation sequ ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
We consider the replacement transformation operation, a very general and powerful transformation, and study under which conditions it preserves universal termination besides computed answer substitutions. With this safe replacement we can significantly extend the safe unfold/fold transformation sequence presented in [11]. By exploiting typing information, more useful conditions can be defined and we may deal with some special cases of replacement very common in practice, namely switching two atoms in the body of a clause and the associativity of a predicate. This is a first step in the direction of exploiting a Pre/Post specification on the intended use of the program to be transformed. Such specification can restrict the instances of queries and clauses to be considered and then relax the applicability conditions on the transformation operations.
Program specialization for verifying infinite state systems: An experimental evaluation
 In LOPSTR’10
, 2010
"... Abstract. We address the problem of the automated verification of temporal properties of infinite state reactive systems. We present some improvements of a verification method based on the specialization of constraint logic programs (CLP). First, we reformulate the verification method as a twophase ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
Abstract. We address the problem of the automated verification of temporal properties of infinite state reactive systems. We present some improvements of a verification method based on the specialization of constraint logic programs (CLP). First, we reformulate the verification method as a twophase procedure: (1) in the first phase a CLP specification of an infinite state system is specialized with respect to the initial state of the system and the temporal property to be verified, and (2) in the second phase the specialized program is evaluated by using a bottomup strategy. In this paper we propose some new strategies for performing program specialization during the first phase. We evaluate the effectiveness of these new strategies, as well as that of some old strategies, by presenting the results of experiments performed on several infinite state systems and temporal properties. Finally, we compare the implementation of our specializationbased verification method with various constraintbased model checking tools. The experimental results show that our method is effective and competitive with respect to the methods used in those other tools. 1
Enhancing Partial Deduction via Unfold/Fold Rules
 Proc. LoPSTr '96
, 1996
"... We show that sometimes partial deduction produces poor program specializations because of its limited ability in (i) dealing with conjunctions of recursively defined predicates, (ii) combining partial evaluations of alternative computations, and (iii) taking into account unification failures. We pro ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
We show that sometimes partial deduction produces poor program specializations because of its limited ability in (i) dealing with conjunctions of recursively defined predicates, (ii) combining partial evaluations of alternative computations, and (iii) taking into account unification failures. We propose to extend the standard partial deduction technique by using versions of the definition rule and the folding rule which allow us to specialize predicates defined by disjunctions of conjunctions of goals. We also consider a case split rule to take into account unification failures. Moreover, in order to perform program specialization via partial deduction in an automatic way, we propose a transformation strategy which takes as parameters suitable substrategies for directing the application of every transformation rule. Finally, we show through two examples that our partial deduction technique is superior to standard partial deduction. The first example refers to the automatic derivation...
A transformation tool for pure Prolog programs  the algebraic specification 
, 1996
"... This technical report contains the complete annotated algebraic specification of `TransLog', a transformation tool for pure Prolog programs. TransLog supports the interactive transformation of (a part of) a program by means of buttons representing transformation steps. As much as possible, pure Prol ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
This technical report contains the complete annotated algebraic specification of `TransLog', a transformation tool for pure Prolog programs. TransLog supports the interactive transformation of (a part of) a program by means of buttons representing transformation steps. As much as possible, pure Prolog semantics are preserved. The choice of pure Prolog semantics induces a number of conditions that have to be satisfied before a particular transformation step is to be applied. Keywords: logic programming, program transformation, algebraic specification. 1 Introduction In this report we present the complete algebraic specification of TransLog, a tool for transformation of pure Prolog programs. The report does not contain an introduction to the theory of (logic) program transformation, nor a description of how the TransLog tool relates to the various theoretical considerations. For the first subject the reader is referred to [TS84], [Sek91] or [PP94]. For the second subject, see [Bru96]. ...
Reasoning about Stable Models (and Other Unstable Semantics)
 Technical Report, IBM Thomas J. Watson Research
, 1990
"... The wellfounded semantics and stable model semantics have proven popular semantics for logic programs. However, these semantics (and others) are not directly amenable to logical reasoning since logically equivalent logic programs may have different stable or wellfounded models. Many natural simpli ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
The wellfounded semantics and stable model semantics have proven popular semantics for logic programs. However, these semantics (and others) are not directly amenable to logical reasoning since logically equivalent logic programs may have different stable or wellfounded models. Many natural simplifications are not universally valid. Furthermore, in some semantics  including the stable model semantics  the definition of a new predicate in terms of old predicates can affect the semantics of the old predicates. We provide valid transformation systems for the wellfounded, stable model and Clarkcompletion semantics. We give restrictions on the application of the simplifications which make them valid, and restrictions on the form of new definitions which avoid unwelcome sideeffects on other predicates. The resulting transformation systems form a basis for reasoning in these unstable semantics.
Transformation of Left Terminating Programs
 PROCEEDINGS OF THE NINTH INTERNATIONAL WORKSHOP ON LOGICBASED PROGRAM SYNTHESIS, LOPSTR'99
, 2000
"... We propose an unfoldfold transformation system which preserves left termination for definite programs besides its declarative semantics. The system extends our previous proposal in [BCE95] by allowing to switch the atoms in the clause bodies when a specific applicability condition is satisfied. The ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We propose an unfoldfold transformation system which preserves left termination for definite programs besides its declarative semantics. The system extends our previous proposal in [BCE95] by allowing to switch the atoms in the clause bodies when a specific applicability condition is satisfied. The applicability condition is very simple to verify, yet very common in practice. We also discuss how to verify such condition by exploiting mode information.
VERIFYING INFINITE STATE SYSTEMS BY SPECIALIZING CONSTRAINT LOGIC PROGRAMS
"... We propose a method for the specification and the automated verification of temporal properties of infinite state reactive systems. Given a reactive system K and a formula ϕ of the branching time temporal logic CTL, we construct a locally stratified constraint logic program PK[ϕ] such that the syste ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We propose a method for the specification and the automated verification of temporal properties of infinite state reactive systems. Given a reactive system K and a formula ϕ of the branching time temporal logic CTL, we construct a locally stratified constraint logic program PK[ϕ] such that the system K verifies ϕ if and only if prop ∈ M(PK[ϕ]), where prop is a predicate symbol defined in PK[ϕ] and M(PK[ϕ]) is the perfect model of PK[ϕ]. Then we check whether or not prop ∈ M(PK[ϕ]) by specializing the program PK[ϕ] w.r.t. prop and deriving a new program Psp containing either the fact prop ← (in which case the temporal formula ϕ is verified by the system) or no clause for prop (in which case the temporal formula ϕ is not verified by the system). Our specialization method makes use of: (i) a set of specialization rules that preserve the perfect model of constraint logic programs, and (ii) an automatic strategy that guides the application of these rules for deriving the specialized program Psp. Our strategy always terminates and is sound for verifying CTL formulas. Due to the undecidability of CTL formulas in the case of infinite state systems, our strategy is incomplete, that is, we may derive a specialized program Psp containing a clause for prop different from the fact prop ←. However, as indicated by the