| P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993. |
....like the one presented here. Run time properties are in a sense of secondary importance for logic programming. A substantial part of a programmer s work can be done referring to the declarative properties only, together with reasoning about termination. Reasoning about declarative properties [Cla79, Hog81, Der93, Dra97] is usually simpler than that about run time properties. So in most cases methods like ours are useful only when one is interested in properties not expressible in terms of the declarative semantics. We may suggest a slogan that such methods are mainly for non logical properties of logic ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99-- 166, 1993.
....Introduction 1.1 Motivation Verification of Prolog programs has been an ongoing research endeavour since the beginning of logic programming. Already Clark and Tarnlund [CT77] and more extensively, Clark [Cla79] addressed this issue. Hogger [Hog84] dealt with this subject in his book, Deransart [Der90] compared various approaches to partial correctness, and Deville [Dev90] studied systematic development of logic and Prolog programs from specifications. In the case of other styles of programming analogous research resulted in clearly isolated and widely recognized proof principles and design ....
P. Deransart. Proof methods of declarative properties of definite programs. Technical Report 1248, INRIA -- Rocquencourt, 1990.
.... been discussed by several authors (see e.g. Aiken Lakshman, 1994; Boye, 1996; Boye Ma luszy nski, 1997; Charatonik Podelski, 1998) and references therein) Their proposals can be seen as special cases of general verification methods of (Drabent Ma luszy nski, 1988; Bossi Cocco, 1989; Deransart, 1993). Technically, directional type checking consists in proving that the sets specified by given directional types of a program satisfy certain verification conditions constructed for this program. For directional types expressed as set constraints the verification conditions can also be expressed as ....
....They are clearly related to term grammars but the paper does not explain the relationship. Our techniques focus on directional types and are based on semantic considerations. Polymorphic directional types for logic programs discussed in (Boye, 1996) are based on the annotation method of (Deransart, 1993) for proving correctness of logic programs. This method is different from that used in our work and refers to a different semantics. In spite of that the verification conditions have a similar nature to ours and give rise to similar parametric set constraints. Our work goes further in that we use ....
Deransart, P. (1993). Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118, 99--166.
....complete with respect to I, or in the detection of incorrectness and or incompleteness symptoms, which would flag the existence of errors in P , and in which case a process of diagnosis should be started to locate such errors. There are many ways in which the validation task can be performed [3,4,17,23,44]. In general, direct application of the previous definitions is not practical for different reasons. First, providing the entire and exact intended semantics I may be a tedious task. Also, the actual semantics [ P ] of P may be an infinite object and it is often more convenient to use ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....partial correctness properties of definite clause logic programs. The method is declarative: it treats programs as sets of axioms and the computed instances of queries as logical formulae; it abstracts from any operational semantics. The method may seem well known, it is discussed among others in [Cla79, Hog81, Hog84, Der93]. However some publications on the theory of logic programming, for instance [Apt97, PR97] use an unnecessarily complicated approach for proving such properties. That approach is operational, it refers to LD resolution and considers the procedure calls that occur during the computation. A main ....
....is correct w.r.t. a declarative specification spec iff spec j= Q for any answer Q of the program. To prove the partial correctness (of a logic program w.r.t. a declarative specification) we use an obvious approach, discussed among others by Clark [Cla79] Hogger [Hog81, p. 378 9] and Deransart [Der93, Section 3]. 5 We will call it the natural proof method: Let P be a program and spec be an interpretation. To show that spec j= Q for every computed correct instance Q of a query it is sufficient to show that spec j= P . So we have to show that spec j= C for each clause C of the program. This proof ....
[Article contains additional citation context not shown here]
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....De Schreye and Decorte [48] survey termination methods, Apt and Marchiori [9] survey modes, types, and partial correctness methods. Ducasse e and Noy e [28] survey environments for dynamic analysis and debugging. Crnogorac et al. 23] compare 1 some occur check analysis methods. Also, Deransart [24] discusses and compares various verification approaches. Apt s book [7] collects several results on verification of Prolog programs. Deville [26] proposes an approach for systematically deriving (terminating) programs from specifications provided in a Clark s completion like format. It is apparent ....
.... purely declarative terms, as the sets M L P and FF L P are constructed without reference to the procedural interpretation of logic programming [34, 7] The notions of weak partial and partial correctness compare with the notions of correctness and completeness, respectively, used by Deransart [24]. Yet other different terminologies are used by other authors, such as Deville [26] to refer to similar notions. As an example, the APPEND program is intuitively totally correct w.r.t. P re; P ost) where P re = f append(xs, ys, zs) j xs; ys are lists g P ost = f append(xs, ys, zs) j zs = xs ....
[Article contains additional citation context not shown here]
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....variables of CLP(FD) from those also containing unbound variables. The presented method locates errors in CLP programs at compile time, without searching for symptoms and without executing the programs. The approach can be linked to methods of proving partial correctness of programs [Cla79, Der93, DM88, BC89] Our tool tries to construct a proof that a program is correct w.r.t. its specification. If the proof is obtained then every execution will be free of symptoms violating the specification. Conversely, if the program is incorrect (and thus there exists a symptom violating the ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....evaluating program clauses [5, 16, 20, 21] with respect to this set of queries. The goal is to detect clauses which are redundant in the restricted context, or to specialise them preventing costly failing derivations. If the original program is correct with respect to a pre post specification [4, 9, 10, 2], and the considered queries satisfy the precondition, then the correctness of the specialised program is ensured. Nothing is guaranteed on the queries which are not in the set of interest. They may succeed with wrong answers, produce a finite failure or an infinite computation. We simply do not ....
....of the input clause satisfies the call condition; ffl and each computed instance of a query satisfies the post condition. The specialisation is applied to so called specialised partially correct programs. This notion is a generalization of the well known concept of partially correct program [11, 4, 9, 10, 2, 3]. It is based on the definition of specialised derivation which is a derivation where all the selected atoms are instantiated in order to satisfy a given call condition. Thus, a specialised partially correct program satisfies the property that all its successful specialised derivations produce ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....of proving partial correctness properties of logic programs. The method is declarative: it treats programs as sets of axioms and the computed instances of queries as logical formulae; it abstracts from any operational semantics. The method may seem well known, it is discussed among others in [Cla79, Hog81, Hog84, Der93]. However some publications on the theory of logic programming, for instance [Apt97, PR97] use an unnecessarily complicated approach for proving such properties. That approach is operational, it refers to LD resolution and considers the procedure calls that occur during the computation. A main ....
....w.r.t. a declarative specification spec iff for every computed instance Q of a query spec j= Q . To prove the partial correctness (of a logic program w.r.t. a declarative specification) we use an obvious approach, discussed among others by Clark [Cla79] Hogger [Hog81, p. 378 9] and Deransart [Der93, Section 3] 2 . We will call it the natural proof method: Let P be a program and spec be an interpretation. To show that spec j= Q for every computed correct instance Q of a query it is sufficient to show that spec j= P . 2 where it is called inductive proof method . So we have to show that spec j= ....
[Article contains additional citation context not shown here]
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....evaluating program clauses with respect to this set of queries (see [19, 24] in order to detect clauses which are redundant in the restricted context or to specialise them preventing costly failing derivations. If the original program was correct with respect to a pre post specification (see [4, 8, 13, 2]) and the considered queries satisfy the precondition, the correctness of the specialised program is assured. Nothing is guaranteed on the queries which are not in the set of interest. We simply do not care about them. Even if the methods we use to prove correctness with respect to a pre post ....
....The specialised semantics is shown to be useful for verifying whether a program can be specialised into a call correct one, and then to develop program specialisations. Our notion of specialisable call correctness provides a novel more general assertionbased characterization of program behaviour [14, 8, 13]. Indeed specialisable call correct programs are either correct in the sense of [3] or can be easily specialised into correct ones. The specialised semantics can be abstracted by using the technique of abstract interpretation [11, 12] Thus the results of this papers can be applied to improve ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....of logic programs, languages of specification, first order logic. 1 Introduction In many approaches to the verification of properties of logic programs, a formal language is required that allows to express the properties of programs one is interested in. In the methods proposed in [13] 1][12][16] an assertional language is assumed to verify properties of arguments of predicates of the programs. Some verification conditions are provided that imply the partial correctness of the programs with respect to various aspects of the computations. For example the method proposed in [12] and ....
....[13] 1] 12] 16] an assertional language is assumed to verify properties of arguments of predicates of the programs. Some verification conditions are provided that imply the partial correctness of the programs with respect to various aspects of the computations. For example the method proposed in [12] and [6] allows to prove properties of the correct answers of the programs, while in [16] a method is provided to prove properties of the computed answers. The methods proposed in [13] and [1] allow to prove, in addition, that predicates verify given specifications at call time. In this paper we ....
[Article contains additional citation context not shown here]
P. Deransart. Proof Methods of Declarative Properties of Definite Programs. Theoretical Computer Science, 118(2):99--166, 1993.
....partial correctness properties of definite clause logic programs. The method is declarative: it treats programs as sets of axioms and the computed instances of queries as logical formulae; it abstracts from any operational semantics. The method may seem well known, it is discussed among others in [Cla79, Hog81, Hog84, Der93]. However some publications on the theory of logic programming, for instance [Apt97, PR97] use an unnecessarily complicated approach for proving such properties. That approach is operational, it refers to LD resolution and considers the procedure calls that occur during the computation. A main ....
....is correct w.r.t. a declarative specification spec iff spec j= Q for any answer Q of the program. To prove the partial correctness (of a logic program w.r.t. a declarative specification) we use an obvious approach, discussed among others by Clark [Cla79] Hogger [Hog81, p. 378 9] and Deransart [Der93, Section 3] 5 . We will call it the natural proof method: Let P be a program and spec be an interpretation. To show that spec j= Q for every computed correct instance Q of a query it is sufficient to show that spec j= P . So we have to show that spec j= C for each clause C of the program. This proof ....
[Article contains additional citation context not shown here]
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....and or complete w.r.t. I , or in the detection of incorrectness and or incompleteness symptoms, which would flag the existance of errors in P , and in which case a process of diagnosis should be started to locate such errors. There are many ways in which the validation task can be performed [3, 4, 16, 19, 38]. In general, direct application of the previous definitions is not practical for different reasons. First, providing the entire and exact intended semantics I may be a tedious task. Also, the actual semantics [ P ] of P may be an infinite object and it is often more convenient to use ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993. Report No. CLIP8/98.0 Using Global Analysis for Program Validation and Debugging 24
....P egs = fa; b; cg. 4 Applications 4.1 Program Correctness Many techniques have been developed for proving properties of logic programs. Among the properties we usually want to prove are termination wrt a given query [5, 10, 24] partial correctness of the program wrt a given specification [16, 6, 13, 15, 4, 3, 20] and program completeness wrt a specification [6, 15, 3] A difference with imperative programmming is that in logic programming partial correctness of a program wrt a given specification and universal termination of a query do not imply that the query has correct computed answers. In fact, as ....
....techniques have been developed for proving properties of logic programs. Among the properties we usually want to prove are termination wrt a given query [5, 10, 24] partial correctness of the program wrt a given specification [16, 6, 13, 15, 4, 3, 20] and program completeness wrt a specification [6, 15, 3]. A difference with imperative programmming is that in logic programming partial correctness of a program wrt a given specification and universal termination of a query do not imply that the query has correct computed answers. In fact, as pointed out in [3] partial correctness and termination do ....
P. Deransart. Proof Methods of Declarative Properties of Definite Programs. Theoretical Computer Science, 118:99--166, 1993.
....partially evaluating program clauses [16, 21 23] with respect to this set of queries in order to detect clauses which are redundant in the restricted context or to specialise them preventing costly failing derivations. If the original program was correct with respect to a pre post specification [4, 9, 10, 2] and the considered queries satisfy the precondition, then the correctness of the specialised program is assured. Nothing is guaranteed on the queries which are not in the set of interest. They may succeed with wrong answers, produce a finite failure or an infinite computation. We simply do not ....
....head of the input clause satisfies the call specification; ffl and each computed answer satisfies the post specification. The specialisation is applied to so called specialised partially correct programs. This notion is a generalization of the well known concept of partially correct program [11, 4, 9, 10, 2, 3]. It is based on the definition of specialised derivation which is a derivation where all the selected atoms are instantiated in order to satisfy a given call specification. Thus, a specialised partially correct program satisfy the property that all its successful specialised derivations produce ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....program is not noFD. 2 4 Applications 4.1 Program Correctness Many techniques have been developed for proving properties of logic programs. Among the properties we usually want to prove are termination wrt a given query [6, 13, 27] partial correctness of the program wrt a given specification [19, 7, 16, 18, 4, 3, 23] and program completeness wrt a specification [7, 18, 3] A difference with imperative programmming, is that in logic programming partial correctness of a program wrt a given specification and universal termination of a query do not imply that the query has correct computed answer substitutions. ....
....techniques have been developed for proving properties of logic programs. Among the properties we usually want to prove are termination wrt a given query [6, 13, 27] partial correctness of the program wrt a given specification [19, 7, 16, 18, 4, 3, 23] and program completeness wrt a specification [7, 18, 3]. A difference with imperative programmming, is that in logic programming partial correctness of a program wrt a given specification and universal termination of a query do not imply that the query has correct computed answer substitutions. In fact, as pointed out in [3] partial correctness and ....
P. Deransart. Proof Methods of Declarative Properties of Definite Programs. Theoretical Computer Science, 118:99--166, 1993.
....is related to the computation model. By relating directional types to the annotation Address correspondence to Department of Computer and Information Science, Linkoping University, S 581 83 Linkoping, Sweden. johbo,janma ida.liu.se 2 method for proving declarative properties of logic programs [21], we obtain a better correctness criterion than those existing in the literature (e.g. the well typing condition of [5, 14] We further demonstrate how directional types can be used for controlling execution in a coroutining fashion. We show that programs satisfying our new correctness condition ....
.... is a special case of the more general one; the example shown above can be reformulated as follows: append 3: # (list; list; any) list; list; list) 3 In particular, we show that for types closed under substitution, input output correctness of a program can be proved by the annotation method [21]. It turns out that the well typing condition of [5, 14] can be seen as a specialization of the annotation method, even though it has been devised for the Prolog computation rule. With this perspective we obtain immediately another specialization of the annotation method, which allows us to prove ....
[Article contains additional citation context not shown here]
P. Deransart. Proof methods of declarative properties of definite programs. Theroretical Computer Science, 118, pp. 99-166, 1993.
....accurately and efficiently, for realistic programs. Thus, we would like to take advantage of standard program analysis tools, rather than developing new abstract procedures, such as concrete [4, 12, 13] or abstract [8, 9] diagnosers and debuggers, or using traditional proof based methods [2, 3, 11, 14, 26]. Figure 1 presents the general architecture of the type of debugging environment that we propose. 1 Hexagons represent the different tools involved and arrows indicate the communication paths among such tools. It is a design decision of the framework implementation that most of such ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....only sorted integer lists of length one. Similarly, I 2 represents a superset of the programmer s intention; it does not require that the lists are sorted. 3 Validation and Diagnosis in a Set Theoretic Framework This section summarizes well known notions related to program validation (see, e.g. Der93] diagnosis by proof, and declarative diagnosis [Sha82, Fer87] The problems found in these disciplines are summarized and discussed in a set theoretic framework for clarity. They can also be formulated in a lattice theoretic setting, but the set theoretic presentation simplifies the ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
.... clauses of skeleton the program, by a goal clause or by and such that: ffl the root is labeled by a (program or goal) clause, ffl if a node is labeled by a clause of the form h a; b 1 ; b n (or by a goal clause a; b 1 with n = 1) where a is the constraint of the clause, then [ 5 6 4 8 3 2 7 ] 1, nqueens(N; List) safe( make list(N; List) safe(X; YjT] K) List : 1. N, noattack(X; Y; K) constrain queens(List) K1 #= K 1, labeling(List) safe(X; T; K1) constrain queens( noattack(X; Y; K) constrain queens( XjY] X ## Y, safe(X; Y; 1) X K ## Y, ....
....occurrence of the same erroneous clause, or an occurrence of another erroneous clause. Finding and correcting one error at a time may be a good strategy but if answering queries in one no branch is too difficult, it may be sometimes worthwhile to explore some other branches. constrain queens([4,8,7,2,5,3,6]) constrain queens( 8,7,2,5,3,6] constrain queens( 7,2,5,3,6] constrain queens( 1,4,8,7,2,5,3,6] safe(1, 4,8,7,2,5,3,6] 1) safe(4, 8,7,2,5,3,6] 1) safe(8, 7,2,5,3,6] 1) safe(7, 2,5,3,6] 1) Figure 4: A proof tree. At the nodes their associated atoms are displayed (instead of the clauses ....
[Article contains additional citation context not shown here]
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, vol. 118, 1993.
....we could re use both component and knowledge of its validation, whatever the proof method used. In this paper, we present a compositional proof method of partial correctness for normal logic programs with import called here units. This method is based on an extension of a proof method given by [6] for definite programs and [8] for normal logic programs. We choose to take up the theoretical framework of these works, in which a program is identified to the set of its ground instances and where the semantics, as well as the specification is denoted by a set of literals. The property of ....
....for definite programs. The reader can find the missing proofs in appendix. 2 General considerations about validation of logic programs Validation of programs has been studied by various authors. Our work takes place in the continuity of the framework considered by [8] 17] and partially by [6] but is extended in order to take compositionality into account. We briefly recall these results to set the vocabulary and the notations. We are only interested here in the validation of the declarative meaning of the program, excluding operational properties. Here, validation consists in ....
[Article contains additional citation context not shown here]
Pierre Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....test program generators from the same language definition as it is used for prototype interpreters. The correctness of the prototype interpreter, especially of the implemented denotational semantics definition, w.r.t. the language definition can be proved applying the inductive proof method ([D90]) Other parts of LDL, that is to say the knowledge base and the tool for language design (see Section 2) are preferably to be implemented in a logic programming language. Therefore the fact that the prototype interpreters are implemented in Prolog contributes to the technical simplicity of ....
....domain D i ) is an abbreviation for is i (exp 1 ) lx.exp 2 ) out i (exp 1 ) exp 3 . 3.2 Logic programming and correctness The reader is expected to be familiar with the basic notions of logic programming. Here we shall only include the main definitions needed for the inductive proof method ([D90]) Let S be a set of sorts, F an S signature (declaring the signature of function symbols over S) V an S sorted set of variables. The free F algebra T(F,V) is identified as the set of the well formed and well typed terms. The term algebra T(F) is identified with the set of all ground terms. For ....
[Article contains additional citation context not shown here]
Deransart, P.: Proof Methods of Declarative Properties of Definite Programs, Rapports de Recherche No 1248, INRIA, Juni 1990
....the parametric order sorted typed logic, used for logic programming in e.g. 22, 21] The type expressions are interpreted as sets of values in the semantic domain of the CLP language. This makes it possible to specialize existing methods for proving partial correctness of logic programs, like [12, 15], to the case of specifications in the language of types and to adapt for CLP some typing techniques proposed for logic programs. This paper sets the stage for such adaptations. A concrete type inference system along these lines is developed by our colleagues as reported in [16] Our type ....
....complete type specification. We first give a straihtforward sufficient condition for the computational type correctness. If satisfied, it also guarantees the declarative type correctness. The presented method is an adaptation to CLP of the proof techniques proposed for logic programming in [15, 12]. Similar techniques has been also used in [3, 1, 2, 4, 5] for dealing with directional types in logic programming. The method consists in checking for each clause of the program a finite number of verification conditions obtained from a given type specification. We then discuss the requirements ....
[Article contains additional citation context not shown here]
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
....one. Similarly, I 2 represents a superset of the programmer s intention; it does not require that the lists are sorted. 3 Validation and Diagnosis in a Set Theoretic Framework This section summarizes and reformulates in a uniform way well known notions related to program validation (see, e.g. [9,10]) diagnosis by proof, and declarative diagnosis [19,12] The problems found in these disciplines are summarized and discussed in a set theoretic framework for clarity. They can also be formulated in a lattice theoretic setting, but the set theoretic presentation simplifies the discussion. 4 ....
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
No context found.
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99--166, 1993.
No context found.
P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, pages 99--166, 1993.
No context found.
P. Deransart, Proof methods of declarative properties of definite programs, Theoretical Computer Science, 118:99--166, (1993).
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC