Results 1  10
of
11
Development of Correct Transformation Schemata for Prolog Programs
 IN LNCS
, 1998
"... Schemabased program transformation [8] has been proposed as an effective technique for the optimisation of logic programs. Schemata are applied to a logic program, mapping inefficient constructs to more efficient ones. One challenging aspect of the technique is that of proving that the schemata are ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
Schemabased program transformation [8] has been proposed as an effective technique for the optimisation of logic programs. Schemata are applied to a logic program, mapping inefficient constructs to more efficient ones. One challenging aspect of the technique is that of proving that the schemata are correct. This paper addresses the issue of correctness. We define operations for developing correct schemata by construction. The schema development operations are higher order equivalents of the classic program transformations of fold/unfold [6]. We consider a transformation schema to be correct if its application yields a target program which is equivalent to the source program under the pure Prolog semantics. The work described in this paper makes three contributions: a methodology for the development of provably correct program transformation schemata, abstraction of program transformation operations to transformation operations on schemata, and a higherorder unificatio...
Synthesis of programs in computational logic
 PROGRAM DEVELOPMENT IN COMPUTATIONAL LOGIC
, 2004
"... Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
(Show Context)
Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the synthesis of programs in computational logic. In this paper we analyze and compare three stateoftheart methods for synthesizing recursive programs in computational logic. The three approaches are constructive/deductive synthesis, schemaguided synthesis, and inductive synthesis. Our comparison is carried out in a systematic way where, for each approach, we describe the key ideas and synthesize a common running example. In doing so, we explore the synergies between the approaches, which we believe are necessary in order to achieve progress over the next decade in this field.
Matching with Regular Constraints
 SUTCLIFFE G., VORONKOV A., Eds., Proceedings of LPAR’05
, 2005
"... We describe a sound, terminating, and complete matching algorithm for terms built over flexible arity function symbols and context, function, sequence, and individual variables. Context and sequence variables allow matching to move in term trees to arbitrary depth and breadth, respectively. The ..."
Abstract

Cited by 9 (8 self)
 Add to MetaCart
(Show Context)
We describe a sound, terminating, and complete matching algorithm for terms built over flexible arity function symbols and context, function, sequence, and individual variables. Context and sequence variables allow matching to move in term trees to arbitrary depth and breadth, respectively. The values of variables can be constrained by regular expressions which are not necessarily linear. We describe heuristics for optimization, and discuss applications.
Sequence unification through currying
 IN: PROCEEDINGS OF THE 18TH INTERNATIONAL CONFERENCE ON REWRITING TECHNIQUES AND APPLICATIONS, RTA’07, LNCS
, 2007
"... Sequence variables play an interesting role in unification and matching when dealing with terms in an unranked signature. Sequence Unification generalizes Word Unification and seems to be appealing for information extraction in XML documents, program transformation, and rulebased programming. In th ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
Sequence variables play an interesting role in unification and matching when dealing with terms in an unranked signature. Sequence Unification generalizes Word Unification and seems to be appealing for information extraction in XML documents, program transformation, and rulebased programming. In this work we study a relation between Sequence Unification and another generalization of Word Unification: Context Unification. We introduce a variant of Context Unification, called LeftHole Context Unification that
Flat matching
 Journal of Symbolic Computation
"... We study matching in flat theories both from theoretical and practical points of view. A flat theory is defined by the axiom f(x, f(y), z). = f(x, y, z) that indicates that nested occurrences of the function symbol f can be flattened out. From the theoretical side, we design a procedure to solve a s ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
(Show Context)
We study matching in flat theories both from theoretical and practical points of view. A flat theory is defined by the axiom f(x, f(y), z). = f(x, y, z) that indicates that nested occurrences of the function symbol f can be flattened out. From the theoretical side, we design a procedure to solve a system of flat matching equations and prove its soundness, completeness, and minimality. The minimal complete set of matchers for such a system can be infinite. The procedure enumerates this set and stops if it is finite. We identify a class of problems on which the procedure stops. From the practical point of view, we look into restrictions of the procedure that give an incomplete terminating algorithm. From this perspective, we give a set of rules that, in our opinion, describes the precise semantics for the flat matching algorithm implemented in the Mathematica system. 1.
Implicit program synthesis by a reversible metainterpreter
 Proc. of LOPSTR’97, volume 1463 of LNCS
, 1998
"... Abstract. Synthesis of logic programs is considered as a special instance of logic programming. We describe experience made within a logical metaprogramming environment whose central component is a reversible metainterpreter, in the sense that it is equally well suited for generating object programs ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
Abstract. Synthesis of logic programs is considered as a special instance of logic programming. We describe experience made within a logical metaprogramming environment whose central component is a reversible metainterpreter, in the sense that it is equally well suited for generating object programs as well as for executing them. Requirements telling that certain goals should be provable in a program sought can be integrated with additional sideconditions expressed by the developer at the metalevel, and the resulting specifications tend to be quite concise and declarative. For problems up to a certain degree of complexity, this provides a mode of working characterized by experimentation and an ability to combine different methods which is uncommon in most other systems for program synthesis. Reversibility in the metainterpreter is obtained using constraint logic techniques. 1
On the Relation Between Context and Sequence Unification
"... Both Sequence and Context Unification generalize the same problem: Word Unification. Besides that, Sequence Unification solves equations between unranked terms involving sequence variables, and seems to be appealing for information extraction in XML documents, program transformation, knowledge repre ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
(Show Context)
Both Sequence and Context Unification generalize the same problem: Word Unification. Besides that, Sequence Unification solves equations between unranked terms involving sequence variables, and seems to be appealing for information extraction in XML documents, program transformation, knowledge representation, and rulebased programming. It is decidable. Context Unification deals with the same problem for ranked terms involving context variables, and has applications in computational linguistics and program transformation. Its decidability is a longstanding open question. In this work we study a relation between these two problems. We introduce a variant (restriction) of Context Unification, called LeftHole Context Unification (LHCU), to which Sequence Unification is Preduced: We define a partial currying procedure to translate sequence unification problems into lefthole context unification problems, and prove soundness of the translation. Furthermore, a precise characterization of the shape of the unifiers allows us to easily reduce LeftHole Context Unification to (the decidable problem of) Word Unification with Regular Constraints, obtaining then a new decidability proof for Sequence Unification. Finally, we define an extension of Sequence Unification (ESU) and, closing the circle, prove the inter Preducibility of LHCU and ESU.
A Dynamic Pattern Calculus with Hedge Variables
"... The dynamic pattern calculus described in this paper integrates the functional mechanism of the lambdacalculus and the capabilities of pattern matching with hedge variables, i.e., variables that can be instantiated by any finite sequence of terms. We propose a generic confluence proof, where the ..."
Abstract
 Add to MetaCart
The dynamic pattern calculus described in this paper integrates the functional mechanism of the lambdacalculus and the capabilities of pattern matching with hedge variables, i.e., variables that can be instantiated by any finite sequence of terms. We propose a generic confluence proof, where the way pattern abstractions are applied in a nondeterministic calculus is axiomatized. Moreover, we present a typed version of the calculus and show that it satisfies the subject reduction and strong normalization properties.
Strategic choice during economic crisis: Domestic market position, . . .
 JOURNAL OF WORLD BUSINESS
, 2009
"... ..."