Results 1  10
of
50
Reasoning about Prolog Programs: from Modes through Types to Assertions
, 1994
"... We provide here a systematic comparative study of the relative strength and expressive power of a number of methods for program analysis of Prolog. Among others we show that these methods can be arranged in the following hierarchy: mode analysis ⇒ type analysis ⇒ monotonic properti ..."
Abstract

Cited by 89 (5 self)
 Add to MetaCart
We provide here a systematic comparative study of the relative strength and expressive power of a number of methods for program analysis of Prolog. Among others we show that these methods can be arranged in the following hierarchy: mode analysis &rArr; type analysis &rArr; monotonic properties &rArr; nonmonotonic runtime properties. We also discuss a method allowing us to prove global runtime properties.
On the Unification Free Prolog Programs
 ACM TOPLAS
, 1998
"... We provide simple conditions which allow us to conclude that in case of several wellknown Prolog programs the unification algorithm can be replaced by iterated matching. The main tools used here are types and generic expressions for types. As already noticed by other researchers, such a replaceme ..."
Abstract

Cited by 83 (22 self)
 Add to MetaCart
We provide simple conditions which allow us to conclude that in case of several wellknown Prolog programs the unification algorithm can be replaced by iterated matching. The main tools used here are types and generic expressions for types. As already noticed by other researchers, such a replacement offers a possibility of improving the efficiency of program's execution.
Representing Actions: Laws, Observations and Hypotheses
 Journal of Logic Programming
, 1997
"... We propose a modification L 1 of the action description language A. The language L 1 allows representation of hypothetical situations and hypothetical occurrence of actions (as in A) as well as representation of actual occurrences of actions and observations of the truth values of fluents in actual ..."
Abstract

Cited by 36 (3 self)
 Add to MetaCart
We propose a modification L 1 of the action description language A. The language L 1 allows representation of hypothetical situations and hypothetical occurrence of actions (as in A) as well as representation of actual occurrences of actions and observations of the truth values of fluents in actual situations. The corresponding entailment relation formalizes various types of commonsense reasoning about actions and their effects not modeled by previous approaches. As an application of L 1 we also present an architecture for intelligent agents capable of observing, planning and acting in a changing environment based on the entailment relation of L 1 and use logic programming approximation of this entailment to implement a planning module for this architecture. We prove the soundness of our implementation and give a sucient condition for its completeness.
A Transformational Methodology for Proving Termination of Logic Programs
, 1991
"... this paper, we present a transformational approach for proving termination of logic programs by reducing the termination problem of logic programs to that of term rewriting systems. The termination problem of term rewriting systems has been well studied and many useful techniques and tools have been ..."
Abstract

Cited by 35 (5 self)
 Add to MetaCart
this paper, we present a transformational approach for proving termination of logic programs by reducing the termination problem of logic programs to that of term rewriting systems. The termination problem of term rewriting systems has been well studied and many useful techniques and tools have been developed for proving termination of term rewriting systems. The prime motivation of our approach is to facilitate the use of this vast source of termination techniques and tools in proving termination of logic programs.
Verification of Logic Programs with Delay Declarations
 Proceedings of the Fourth International Conference on Algebraic Methodology and Software Technology, (AMAST'95), Lecture Notes in Computer Science
, 1995
"... . Logic programs augmented with delay declarations form a higly expressive programming language in which dynamic networks of processes that communicate asynchronously by means of multiparty channels can be easily created. In this paper we study correctness these programs. In particular, we propose p ..."
Abstract

Cited by 33 (1 self)
 Add to MetaCart
(Show Context)
. Logic programs augmented with delay declarations form a higly expressive programming language in which dynamic networks of processes that communicate asynchronously by means of multiparty channels can be easily created. In this paper we study correctness these programs. In particular, we propose proof methods allowing us to deal with occur check freedom, absence of deadlock, absence of errors in presence of arithmetic relations, and termination. These methods turn out to be simple modifications of the corresponding methods dealing with Prolog programs. This allows us to derive correct delay declarations by analyzing Prolog programs. Finally, we point out difficulties concerning proofs of termination. Notes. The research of the first author was partly supported by the ESPRIT Basic Research Action 6810 (Compulog 2). This paper will appear as an invited lecture in: Proc. of the Fourth International Conference on Algebraic Methodology and Software Technology, (AMAST'95). 1 Introduction ...
Directional Types and the Annotation Method
, 1997
"... This paper shows that the annotation proof method, proposed by Deransart for proving declarative properties of logic programs, is also applicable for proving correctness of directional types. In particular, the sufficient correctness criterion of welltypedness by Bronsard et al, turns out to be a s ..."
Abstract

Cited by 31 (3 self)
 Add to MetaCart
This paper shows that the annotation proof method, proposed by Deransart for proving declarative properties of logic programs, is also applicable for proving correctness of directional types. In particular, the sufficient correctness criterion of welltypedness by Bronsard et al, turns out to be a specialization of the annotation method. The comparison shows a general mechanism for construction of similar specializations, which is applied to derive yet another concept of welltypedness. The usefulness of the new correctness criterion is shown on examples of Prolog programs, where the traditional notion of welltypedness is not applicable. We further show that the new welltyping condition can be applied to different execution models. This is illustrated by an example of an execution model where unification is controlled by directional types, and where our new welltyping condition is applied to show the absence of deadlock. / 1. INTRODUCTION
Termination of Logic Programs Using Semantic Unification
 Logic Programming Synthesis and Transformation, 5th International Workshop. LOPSTR'95
, 1996
"... . We introduce a transformation of wellmoded logic programs into constructor systems, a subclass of term rewrite systems, such that lefttermination of the logic program follows from termination of the derived constructor system. Thereafter, we present a new technique to prove termination of co ..."
Abstract

Cited by 25 (2 self)
 Add to MetaCart
(Show Context)
. We introduce a transformation of wellmoded logic programs into constructor systems, a subclass of term rewrite systems, such that lefttermination of the logic program follows from termination of the derived constructor system. Thereafter, we present a new technique to prove termination of constructor systems. In the technique semantic unification is used. Thus, surprisingly, semantic unification can be used for giving termination proofs for logic programs. Parts of the technique can be automated very easily. Other parts can be automated for subclasses of constructor systems. The technique is powerful enough to prove termination of some constructor systems that are not simply terminating, and therefore, the technique is suitable to prove termination of some difficult logic programs. 1 Introduction Several approaches to prove termination of logic programs are proposed (for a survey see [SD93]). One of the approaches, introduced by Krishna Rao et al. [KKS91], is to transf...
Logic Programs as Term Rewriting Systems
, 1994
"... This paper studies the relationship between logic programs and term rewriting systems (TRSs). A compositional transform is defined which given a logic program computes a TRS. For a relevant class of logic programs, called Simply Well Moded (SWM), there is a onetoone correspondence between computed ..."
Abstract

Cited by 24 (4 self)
 Add to MetaCart
(Show Context)
This paper studies the relationship between logic programs and term rewriting systems (TRSs). A compositional transform is defined which given a logic program computes a TRS. For a relevant class of logic programs, called Simply Well Moded (SWM), there is a onetoone correspondence between computed answer substitutions of the logic program and normal forms of the corresponding TRS. Moreover the transform preserves termination, i.e., a logic program terminates iff the corresponding TRS terminates. This transform is refined in such a way that the above results hold for a relevant class of unification free programs containing SWM, the class of Flatly Well Moded (FWM) programs. Note: This work was done during an author's stay at CWI, Amsterdam. 1 Introduction The study of transforms from logic programs into term rewriting systems (TRSs for short) is an important topic. Theoretically, it is interesting to analyze which classes of logic programs can be regarded as TRSs in disguise. Practic...
Declarative programming in Prolog
 Logic Programming, Proc. ILPS'93
, 1993
"... We try to assess to what extent declarative programming can be realized in Prolog and which aspects of correctness of Prolog programs can be dealt with by means of declarative interpretation. More specifically, we discuss termination of Prolog programs, partial correctness, absence of errors and the ..."
Abstract

Cited by 22 (3 self)
 Add to MetaCart
(Show Context)
We try to assess to what extent declarative programming can be realized in Prolog and which aspects of correctness of Prolog programs can be dealt with by means of declarative interpretation. More specifically, we discuss termination of Prolog programs, partial correctness, absence of errors and the safe use of negation.