Results 1 
9 of
9
Logic program specialisation through partial deduction: Control issues
 THEORY AND PRACTICE OF LOGIC PROGRAMMING
, 2002
"... Program specialisation aims at improving the overall performance of programs by performing source to source transformations. A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input. It ..."
Abstract

Cited by 53 (12 self)
 Add to MetaCart
Program specialisation aims at improving the overall performance of programs by performing source to source transformations. A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input. It is achieved through a wellautomated application of parts of the BurstallDarlington unfold/fold transformation framework. The main challenge in developing systems is to design automatic control that ensures correctness, efficiency, and termination. This survey and tutorial presents the main developments in controlling partial deduction over the past 10 years and analyses their respective merits and shortcomings. It ends with an assessment of current achievements and sketches some remaining research challenges.
Homeomorphic embedding for online termination of symbolic methods
 In The essence of computation, volume 2566 of LNCS
, 2002
"... Abstract. Wellquasi orders in general, and homeomorphic embedding in particular, have gained popularity to ensure the termination of techniques for program analysis, specialisation, transformation, and verification. In this paper we survey and discuss this use of homeomorphic embedding and clarify ..."
Abstract

Cited by 28 (5 self)
 Add to MetaCart
Abstract. Wellquasi orders in general, and homeomorphic embedding in particular, have gained popularity to ensure the termination of techniques for program analysis, specialisation, transformation, and verification. In this paper we survey and discuss this use of homeomorphic embedding and clarify the advantages of such an approach over one using wellfounded orders. We also discuss various extensions of the homeomorphic embedding relation. We conclude with a study of homeomorphic embedding in the context of metaprogramming, presenting some new (positive and negative) results and open problems.
Verifying CTL Properties of Infinite State Systems by Specializing Constraint Logic Programs
, 2001
"... this paper we assume that a system makes transitions from states to states and its evolution can be formalized using a computation tree which is dened as follows. Given a system S and its initial state s 0 , the root of the computation tree for S is s 0 , and every node s i of the computation tree f ..."
Abstract

Cited by 17 (11 self)
 Add to MetaCart
this paper we assume that a system makes transitions from states to states and its evolution can be formalized using a computation tree which is dened as follows. Given a system S and its initial state s 0 , the root of the computation tree for S is s 0 , and every node s i of the computation tree for S has a child node s j i there exists in S a transition from state s i to state s j , called a successor state of s i . The set of all states of a system may be nite or innite. We assume that in every system for every state s i there exists at least one successor state
Specialization with Clause Splitting for Deriving Deterministic Constraint Logic Programs
 In Proc. IEEE Conference on Systems, Man and Cybernetics, Hammamet
, 2002
"... The reduction of nondeterminism can increase efficiency when specializing programs. We consider constraint logic programs and we propose a technique which by making use of a new transformation rule, called clause splitting, allows us to generate efficient, specialized programs which are deterministi ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
The reduction of nondeterminism can increase efficiency when specializing programs. We consider constraint logic programs and we propose a technique which by making use of a new transformation rule, called clause splitting, allows us to generate efficient, specialized programs which are deterministic. We have applied our technique to the specialization of pattern matching programs.
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 2 (2 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
A Specialization Technique for Deriving Deterministic Constraint Logic Programs and Its Application to Pattern Matching
, 2002
"... When specializing programs one can increase efficiency by reducing nondeterminism. We consider constraint logic programs and we propose a technique which, by making use of a new transformation rule called clause splitting, allows us to generate efficient, specialized programs which are determini ..."
Abstract
 Add to MetaCart
When specializing programs one can increase efficiency by reducing nondeterminism. We consider constraint logic programs and we propose a technique which, by making use of a new transformation rule called clause splitting, allows us to generate efficient, specialized programs which are deterministic. We have applied our technique to the specialization of pattern matching programs.
Verification of InfiniteState Systems by Specialization of CLP Programs
"... The goal of automated verification is the definition of a logical framework where hardware or software systems can be formally specified and formal proofs about their properties can be given in a fully automatic way. This involves defining formalisms for encoding systems and the properties of intere ..."
Abstract
 Add to MetaCart
The goal of automated verification is the definition of a logical framework where hardware or software systems can be formally specified and formal proofs about their properties can be given in a fully automatic way. This involves defining formalisms for encoding systems and the properties of interest. During the last years many logicbased techniques have been developed for automatically verifying properties of systems, the most successful of them being model checking [3]. The success of model checking is mostly due to the use of a particular data structure, Binary Decision Diagrams, which provide a very compact symbolic representation of a possibly very large, but finite, set of states. In order to overcome this finiteness restriction, some effort is now being put into the integration of abstraction and deduction techniques with model checking [15]. Recent papers also demonstrate the usefulness of (constraint) logic programming as a basis for the verification of finite...
Using Real Relaxations During Program Specialization
"... Abstract. We propose a program specialization technique for locally stratified CLP(Z) programs, that is, logic programs with linear constraints over the set Z of the integer numbers. For reasons of efficiency our technique makes use of a relaxation from integers to reals. We reformulate the familiar ..."
Abstract
 Add to MetaCart
Abstract. We propose a program specialization technique for locally stratified CLP(Z) programs, that is, logic programs with linear constraints over the set Z of the integer numbers. For reasons of efficiency our technique makes use of a relaxation from integers to reals. We reformulate the familiar unfold/fold transformation rules for CLP programs so that: (i) the applicability conditions of the rules are based on the satisfiability or entailment of constraints over the set R of the real numbers, and (ii) every application of the rules transforms a given program into a new program with the same perfect model constructed over Z. Then, we introduce a strategy which applies the transformation rules for specializing CLP(Z) programs with respect to a given query. Finally, we show that our specialization strategy can be applied for verifying properties of infinite state reactive systems specified by constraints over Z. 1
Controlling Polyvariance for SpecializationBased Verification
"... Abstract. We present some extensions of a method for verifying safety properties of infinite state reactive systems. Safety properties are specified by constraint logic programs encoding (backward or forward) reachability algorithms. These programs are transformed, before their use for checking safe ..."
Abstract
 Add to MetaCart
Abstract. We present some extensions of a method for verifying safety properties of infinite state reactive systems. Safety properties are specified by constraint logic programs encoding (backward or forward) reachability algorithms. These programs are transformed, before their use for checking safety, by specializing them with respect to the initial states (in the case of backward reachability) or with respect to the unsafe states (in the case of forward reachability). In particular, we present a specialization strategy which is more general than previous proposals and we show, through some experiments performed on several infinite state reactive systems, that by using the specialized reachability programs obtained by our new strategy, we considerably increase the number of successful verifications. Then we show that the specialization time, the size of the specialized program, and the number of successful verifications may vary, depending on the polyvariance introduced by the specialization, that is, the set of specialized predicates which have been introduced. Finally, we propose a general framework for controlling polyvariance and we use our set of examples of infinite state reactive systems to compare in an experimental way various control strategies one may apply in practice. 1