Results 1  10
of
41
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.
Specialised Semantics of Logic Programs
 Theoretical Computer Science
, 1994
"... In this paper, we present a specialised semantics for logic programs. It is a generalization of the ssemantics [16] and it is intended to describe program behaviour whenever some constraints on procedure calls are assumed. Both operational and fixpoint constructions are defined. They characterize s ..."
Abstract

Cited by 72 (20 self)
 Add to MetaCart
In this paper, we present a specialised semantics for logic programs. It is a generalization of the ssemantics [16] and it is intended to describe program behaviour whenever some constraints on procedure calls are assumed. Both operational and fixpoint constructions are defined. They characterize successful derivations of programs where only atoms satisfying a given callcondition are selected. The concept of specialisable call correct (s.c.c., in short) program with respect to a given callcondition is introduced. We show that specialisable call correct programs can be transformed into callcorrect ones. A sufficient condition to verify specialisable call correctness is stated.
Abstract Diagnosis
, 2001
"... We show how declarative diagnosis techniques can be extended to cope with verification properties, such as depth(k) answers and groundness dependencies. The extension is achieved by using a simple semantic framework, based on abstract interpretation. The resulting technique (abstract diagnosis) lead ..."
Abstract

Cited by 43 (15 self)
 Add to MetaCart
We show how declarative diagnosis techniques can be extended to cope with verification properties, such as depth(k) answers and groundness dependencies. The extension is achieved by using a simple semantic framework, based on abstract interpretation. The resulting technique (abstract diagnosis) leads to elegant bottomup and topdown verification methods, which do not require to determine the symptoms in advance, and which are effective in the case of abstract properties described by finite domains.
Logic Program Synthesis
, 1993
"... This paper presents an overview and a survey of logic program synthesis. Logic program synthesis is interpreted here in a broad way; it is concerned with the following question: given a specification, how do we get a logic program satisfying the specification? Logic programming provides a uniquely n ..."
Abstract

Cited by 42 (11 self)
 Add to MetaCart
This paper presents an overview and a survey of logic program synthesis. Logic program synthesis is interpreted here in a broad way; it is concerned with the following question: given a specification, how do we get a logic program satisfying the specification? Logic programming provides a uniquely nice and uniform framework for program synthesis since the specification, the synthesis process and the resulting program can all be expressed in logic. Three main approaches to logic program synthesis by formal methods are described: constructive synthesis, deductive synthesis and inductive synthesis. Related issues such as correctness and verification as well as synthesis by informal methods are briefly presented. Our presentation is made coherent by employing a unified framework of terminology and notation, and by using the same running example for all the approaches covered. This paper thus intends to provide an assessment of existing work and a framework for future research in logic program synthesis.
Transformation of Logic Programs
 Handbook of Logic in Artificial Intelligence and Logic Programming
, 1998
"... Program transformation is a methodology for deriving correct and efficient programs from specifications. In this chapter, we will look at the so called 'rules + strategies' approach, and we will report on the main techniques which have been introduced in the literature for that approach, i ..."
Abstract

Cited by 40 (4 self)
 Add to MetaCart
Program transformation is a methodology for deriving correct and efficient programs from specifications. In this chapter, we will look at the so called 'rules + strategies' approach, and we will report on the main techniques which have been introduced in the literature for that approach, in the case of logic programs. We will also present some examples of program transformation, and we hope that through those examples the reader may acquire some familiarity with the techniques we will describe.
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
Program Verification and Prolog
 Specification and Validation Methods for Programming Languages and Systems
, 1994
"... We show here that verification of Prolog programs can be systematically carried out within a simple framework which comprises syntactic analysis, declarative semantics, modes and types. We apply these techniques to study termination, partial correctness, occurcheck freedom, absence of errors and abs ..."
Abstract

Cited by 15 (3 self)
 Add to MetaCart
(Show Context)
We show here that verification of Prolog programs can be systematically carried out within a simple framework which comprises syntactic analysis, declarative semantics, modes and types. We apply these techniques to study termination, partial correctness, occurcheck freedom, absence of errors and absence of floundering. Finally, we discuss which aspects of these techniques can be automated. Notes. This research was partly supported by the ESPRIT Basic Research Action 6810 (Compulog 2). A preliminary, shorter, version of this paper appeared as Apt [3]. 1 Introduction 1.1 Motivation Prolog is 20 years old and so is logic programming. However, they were developed separately and these two developments never really merged. The first track is best exemplified by Sterling and Shapiro [36], which puts emphasis on programming style and techniques, and the second by Lloyd [25], which concentrates on the theoretical foundations. As a result of these separate developments, until recently little...
On termination of constraint logic programs
 In Proc. CP'95, LNCS 976
, 1995
"... Abstract. This paper introduces a necessary and sufficient condition for termination of constraint logic programs. The method is based on assigning a dataflow graph to a program, whose nodes are the program points and whose arcs are abstractions of the rules of a transition system, describing the op ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
(Show Context)
Abstract. This paper introduces a necessary and sufficient condition for termination of constraint logic programs. The method is based on assigning a dataflow graph to a program, whose nodes are the program points and whose arcs are abstractions of the rules of a transition system, describing the operational behaviour of constraint logic programs. Then termination is proven using a technique inspired by the seminal approach of Floyd for proving termination of flowchart programs. 1
Abstract Interpretation based Verification of Logic Programs
 SCIENCE OF COMPUTER PROGRAMMING
, 2000
"... This paper is an overview of our results on the application of abstract interpretation concepts to various problems related to the verification of logic programs. These include the systematic design of semantics modeling various proof methods and the characterization of assertions as abstract domain ..."
Abstract

Cited by 12 (6 self)
 Add to MetaCart
(Show Context)
This paper is an overview of our results on the application of abstract interpretation concepts to various problems related to the verification of logic programs. These include the systematic design of semantics modeling various proof methods and the characterization of assertions as abstract domains.