Soundness and Completeness of Partial Deductions for Well-Founded ...

15 downloads 0 Views 204KB Size Report
Mar 3, 1995 - The immediate descendents (successors) of H in the tree SLS +1(G) are de ned as follows: (i) If H is empty then it has no descendents and is a ...
Soundness and Completeness of Partial Deductions for Well-Founded Semantics Teodor Przymusinski Halina Przymusinska Department of Computer Science Department of Computer Science University of California at Riverside California State Polytechnic ([email protected]) ([email protected]) Hirohisa Seki Department of AI and Computer Science Nagoya Institute of Technology ([email protected]) March 3, 1995

1 Introduction Partial deduction (or evaluation) has been introduced to logic programming in 1981 by Komorowski [Kom81]. It is an optimization technique which, given a speci c resolution procedure, such as SLDNF-resolution, and the initial program P , allows us to transform P into a new program P 0 by removing some clauses from P and replacing them by resolvents (deductions) produced by the resolution procedure applied to P . The importance of partial deduction stems from the fact that it often leads to simpler programs which can be processed more eciently. Consequently, partial deduction continues to attract signi cant attention among both theory and application-oriented researchers in logic programming (see, e.g., [SZ87, LS87, Kom89]). It is important to realize, however, that before partial deduction can be safely used we have to check whether the meaning, or semantics, of the derived program P 0 coincides with the semantics of the initial program P . Otherwise, the derived program P 0 , while being possibly simpler and more ecient, may produce results (answers) which are di erent from those that would be produced by the original program, thus defeating the very purpose of the partial deduction, namely, nding answers to queries about program P . One of the important semantics introduced recently to logic programming is the so called well-founded semantics [VGRS90]. It appears to be a natural semantics for logic programs which extends the perfect model semantics of strati ed programs, eliminates some of the drawbacks of Clark's predicate completion semantics and, in general, behaves in a more regular fashion (see, e.g., [PP90, Prz93]). For datalog programs with negation well-founded Partially supported by the Swedish National Board for Technical Development grant #90-1676. This work has been conducted while both authors were visiting the Computer Science Department at the University of Linkoping in Sweden. 

1

models can be computed in polynomial (quadratic) time. While SLDNF-resolution is still sound with respect to the well-founded semantics, a new resolution procedure, called SLSresolution, has been introduced for well-founded semantics [Prz89a, Ros89] and shown to be sound and complete (for non- oundering queries) with respect to this semantics. Recently, D. S. Warren developed an elegant Prolog meta-interpreter and introduced the Extended Warren Abstract Machine (XWAM) for the well-founded semantics (cf. [Prz93]). We prove that partial deductions based on SLS-resolution preserve the well-founded semantics of logic programs. More precisely, we show that if P is a program and if P 0 is obtained from P by an SLS-partial deduction then the well-founded semantics of the initial program P coincides with the well-founded semantics of the derived program P 0 . This result proves that the declarative semantics of logic programs is preserved by SLS-partial deductions and shows that partial deductions based on SLS-resolution can be safely used without alternating in any way the original meaning of the program. Due to the soundness and completeness of SLS-resolution for well-founded semantics, we immediately obtain that SLS-partial deductions also preserve the procedural semantics of logic programs, i.e., that the set of SLS-computed answer substitutions obtained from the initial program P is equivalent to the set of SLS-computed answer substitutions obtained from the partially deduced program P 0 . It is important to point out that in both results we are allowed to choose arbitrary computation rules used with programs P and P 0 . Analogous results for Clark's predicate completion semantics and for partial deductions based on SLDNF-resolution are only partially true. Lloyd and Shepherdson proved in [LS87] (see also [Kom81]) that SLDNF-partial deductions preserve the procedural semantics of programs, i.e., that the set of SLDNF-computed answer substitutions obtained from the initial program P is equivalent to the set of SLDNF-computed answer substitutions obtained from the partially deduced program P 0 . This result requires, however, a careful selection of, possibly di erent, computation rules used with programs P and P 0 and thus is dicult to apply in practice. On the other hand, as pointed out in [LS87], SLDNF-partial deductions do not preserve the declarative semantics of programs, i.e., the predicate completion semantics of the initial program P can, in general, be di erent from the predicate completion semantics of the derived program P 0 . Our results underscore one more time the naturality of well-founded semantics and the regularity of its behavior vis-a-vis predicate completion semantics. They show that partial deduction is a completely safe query optimization procedure for logic programs with the well-founded semantics. The invariance of well-founded semantics under partial deductions is proved under the assumption of the so called A-closedness of the program, which was originally introduced and used by Lloyd and Shepherdson [LS87]. In the last section we de ne the notion of constrained partial deduction and prove the invariance of well-founded semantics under constrained partial deduction, without the assumption of A-closedness. This result generalizes our previous results. The paper is organized as follows. In the next section we de ne the terminology used in the paper, including the notions of SLS-resolution and SLS-partial deduction. In Section 3 we show the invariance of well-founded semantics under SLS-partial deductions. In the last Section 4 we show the invariance of well-founded semantics under constrained partial deductions, without the assumption of A-closedness. 2

2 Notation and De nitions

De nition 2.1 By a logic program P we mean a nite set of universally quanti ed clauses of the form

A

L1 ; :::; Lm where m  0, A is an atom and Li 's are literals. 2

2

The alphabet of a program P consists of all the constant, predicate, variable and function symbols that appear in P and { in addition { the equality predicate = (which does not appear in program clauses1 ), in nitely but countably many variable symbols and (possibly) countably many additional constant and/or function symbols. It is assumed that there is at least one constant in the alphabet and that the alphabet also contains the usual punctuation symbols, connectives (^; _; :) and quanti ers (9; 8). The language LP of P consists of all the well-formed formulae of the so obtained rst order theory. Throughout this paper we assume the so called Clark's Equational Theory axioms (CET) ([Llo87]), i.e., instead of considering the program P itself we consider its extension CET (P ) = P + CET . De nition 2.2 By the well-founded semantics WF (P ) of a program P we mean the set of all closed formulae (sentences) which hold in all (Herbrand or not) well-founded models of P satisfying the Clark Equality Theory axioms CET (see [VGRS90, PP90]). If a sentence F belongs to WF (P ) then we say that F is implied by the well-founded semantics and we write: WF (P ) j= F: 22

2.1 SLS-resolution

In this section we recall the de nition of SLS-resolution, de ned originally in [Prz89a] (see also [Ros89]) and subsequently modi ed in [Prz93]. Suppose that P is any logic program. By a goal G we mean a headless clause L1 ,..., Lk , where k0 and Li 's are literals. We also write, G = Q, where Q = L1 ,..., Lk is called a query. Let us choose an arbitrary computation rule R (see [Llo87]), i.e., a rule that selects exactly one literal from any non-empty goal. We will de ne the SLS -tree, SLS (G), for a goal G by constructing a sequence: fSLS (G)g 0 of SLS-trees of rank , with SLS (G) being a subtree of SLS (G), for < , and with SLS (G) de ned as the largest element (or the union) of the sequence. Some of the leaves of the so constructed SLS-trees SLS will be labeled as success, failure and ounder leaves, respectively. A leaf which is not labeled will be called a non-labeled leaf. We will use the following de nition: De nition 2.3 (Successful, Failed and Floundered SLS-trees.) An SLS-tree for a goal G is successful if it has a successful derivation, i.e., a derivation ending in a success leaf. It is failed if all of its branches are either in nite or end in a failure leaf. It is

oundered if it contains a ounder leaf and is not successful. 2 2 1 The extension to the more general case with equality literals appearing in the premises of program clauses and goals is fairly straightforward and is discussed in Section 4.

3

We now de ne SLS-trees of rank . The SLS-tree, SLS0 (G), of rank = 0 consists only of the non-labeled root node G. Suppose now that > 0 and assume that SLS-trees, SLS (G), of rank have been already de ned for all 0  < and for all goals G. If is a limit ordinal then the SLS-tree of rank is de ned as the union of all the previously constructed trees SLS (G), for < :

SLS (G) =

[ SLS (G):

<



Otherwise, = + 1 and we de ne the SLS-tree SLS +1 (G) as an extension of the previously constructed SLS-tree of rank obtained by possibly adding some descendents to (or by labeling) some of the non-labeled leafs of SLS (G):

De nition 2.4 (SLS-trees of rank + 1) The SLS-tree, SLS +1(G), of rank + 1

consists of all nodes (and labels) of the previously constructed SLS-tree, SLS (G), of rank , together with all nodes (and labels) obtained by recursively applying the following resolution rules to all non-labeled leaves of SLS (G) and to their descendents. Let H = L1 ; : : : ; Lk be an arbitrary non-labeled leaf of SLS (G) (or a descendent thereof) and let L be the literal selected from H by the computation rule R (if one is selected). The immediate descendents (successors) of H in the tree SLS +1 (G) are de ned as follows: (i) If H is empty then it has no descendents and is a success leaf. (ii) If L = A is a positive literal then the immediate descendents of H are { as usual { all goals K that can be obtained from the goal H by resolving H with (a variant of) one of the program clauses upon the atom A, using most general uni ers. If there are no such K 's, then H has no descendents and is a failure leaf; (iii) If L = :A is negative then we consider four cases:

{ If A is ground and the SLS-tree SLS ( A) is failed then H has precisely one descendent, namely, the node K = H ? fLg obtained by removing L from H ; { If A is ground and the SLS-tree SLS ( A) is successful then the node H has

no descendents and is called a failure leaf; { If A is not ground or if the SLS-tree SLS ( A) is oundered then the node H has no descendents and is a ounder leaf; { Otherwise, we mark the literal L in H as skipped and use the computation rule2 R to select, if possible, a new literal L0 and subsequently we apply the resolution steps (ii) and (iii) to the goal H , with L0 now acting as the literal selected by R. If all literals in the goal H were already marked as skipped then the node H has no descendents in SLS +1 (G) (and is not labeled).

All skip marks are removed once the construction of the SLS -tree SLS +1 (G) is completed. 2 2 2 Applied to the goal H from which all literals marked as skipped were removed.

4

It follows immediately from the de nition that for any goal G the sequence fSLS (G)g 0 of SLS-trees of rank is non-decreasing, i.e.,

SLS (G)  SLS (G); for < ; and, therefore, due to the countability of the language, it must have a xed point, i.e., there must exist a  such that: SLS (G) = SLS+1 (G): We de ne the SLS -tree SLS (G) for the goal G as its SLS -tree of rank :

SLS (G) = SLS (G): We de ne SLS-computed answer substitutions in the usual way:

De nition 2.5 (SLS-computed answer substitutions) If the SLS-tree for a goal G

has a successful derivation then the accumulated substitution , restricted to the variables in G, is called the SLS-computed answer substitution for G. 2 2

De nition 2.6 We say that a substitution  is more general than a substitution 0 if there

is a substitution  such that 0 = . If a substitution  is more general than a substitution 0 and if also 0 is more general than  then we say that substitutions  and 0 are equivalent. If S is a set of substitutions then we say that a substitution  2 S is maximal in S if any other substitution 0 2 S which is more general than  is equivalent to . 2 2

The following result from [Prz89a, Prz93] (see also [Ros89]) shows that SLS-resolution is sound and complete (for non- oundering queries) w.r.t. the well-founded semantics:

Theorem 2.1 (Soundness and Completeness of SLS-resolution)

Suppose that P is a logic program, R is a computation rule and G = Q is a goal. If the SLS-tree for G is non- oundered then: (i) WF (P ) j= 9(Q) i the SLS-tree for

Q is successful;

(ii) WF (P ) j= 8(Q) i there exists an SLS-computed answer substitution for general than the substitution ; (iii) WF (P ) j= :9(Q) i the SLS-tree for

Q is failed. 2

Q more

2

2.2 Partial Deduction

The following de nitions are the same as those given in [LS87, Kom89] except that they use SLS-resolution rather than SLDNF-resolution.

De nition 2.7 (SLS-Resultants) Suppose that P is a program,

Q a goal and R a computation rule. Let Q; Q1 ; : : : ; Qk be an SLS-derivation from P [ Q, with  denoting the accumulated substitution restricted to the variables of Q. The formula: Q is called the resultant of the derivation of

Qk Qk from 5

Q. 2

2

De nition 2.8 (SLS-Partial Deduction) Suppose that P is a program, A is an atom, R is a computation rule and T is the SLS-tree for P [ A. Let Q1; : : : ; Qm be

non-root goals in T chosen so that each non-failing3 branch of T contains exactly one of them. For 0  i  m, let Ri be the resultant of the derivation of Qi from A. Then the set of clauses R1 ; : : : ; Rm is called a partial deduction of the atom A. If A is a nite set of atoms then a partial deduction of P w.r.t. A is a program P 0 obtained from P by:

 Removing from P all clauses whose heads contain one of the predicate symbols appearing in the set A, and,  Adding partial deductions of all atoms A 2 A. 2 2 De nition 2.9 (A-Closedness) Let S be a set of rst order formulae and A a nite set of atoms. The set S is called A-closed if each atom in S containing a predicate symbol occurring in an atom in A is an instance of an atom in A. 2 2 De nition 2.10 (Singularity) A nite set A of atoms is singular if, for each predicate symbol p, there is at most one atom in A containing p. 2 2

3 Soundness and Completeness of Partial Deductions Our rst result shows the declarative invariance of well-founded semantics under partial deductions, i.e., it proves that the declarative meaning of the program P coincides with the declarative meaning of the program P 0 obtained from P by means of partial deduction.

Theorem 3.1 (Declarative Soundness and Completeness) Suppose that P is a program, R is a computation rule and Q is a goal. Let P 0 be an SLS-partial deduction of P w.r.t. a nite set A of atoms such that P 0 [ fQg is A-closed. Then: (i) WF (P ) j= 9(Q)  WF (P 0 ) j= 9(Q);

(ii) WF (P ) j= 8(Q)  WF (P 0 ) j= 8(Q), for any substitution ;

(iii) WF (P ) j= :9(Q)  WF (P 0 ) j= :9(Q). 2

2

Our second result shows the procedural invariance of well-founded semantics under partial deductions, i.e., it proves that SLS-computed answer substitutions w.r.t. the program P are equivalent to those computed w.r.t. the program P 0 , obtained from P by means of partial deduction.

Theorem 3.2 (Procedural Soundness and Completeness) Suppose that P is a pro-

gram, R is a computation rule and Q is a goal. Let P 0 be an SLS-partial deduction of P w.r.t. a nite set A of atoms such that P 0 [ fQg is A-closed. If none of the SLS-trees for P [ Q and P 0 [ Q is oundered, then: (i) SLS-tree for P [ 3

Q is successful i SLS-tree for P 0 [

I.e., neither in nite nor ending in a failure leaf.

6

Q is successful;

(ii) A substitution  is a maximal SLS-computed answer substitution for P [ only if it is a maximal SLS-computed answer substitution for P 0 [ Q;

(iii) SLS-tree for P [

Q is failed i SLS-tree for P 0 [

Q is failed. 2

Q if and

2

It is clear that we can restrict our attention to computing maximal answer substitutions because they allow us to produce a declaratively complete set of answers to any given query. As in [LS87], it can be shown that the assumption that none of the SLS-trees for P [ Q and P 0 [ Q is oundered can be replaced by the assumption that the set A is singular.

4 Soundness and Completeness of Constrained Partial Deductions

In this section we show that the assumption of A-closedness, originally introduced by Lloyd and Shepherson [LS87] and also used in our previous results, can be removed if constrained partial deduction is used instead of standard partial deduction. This leads to more general results than those presented in the previous section. The importance of constrained partial deduction stems not only from its greater generality but also from the fact that the A-closedness condition is, in general, undecidable4. Consequently, for a given program P , a goal Q and a nite set A of atoms, it is undecidable whether there exists a partial deduction P 0 of P w.r.t. A such that P 0 [ fQg is A-closed. This theoretical limitation severely restricts the practical applicability of standard (non-constrained) partial deduction. We begin by introducing the notion of constrained partial deduction. We rst extend the class of normal logic programs by allowing constraints in the form of inequalities in program clauses and goals. The following four de nitions are similar to those originally given in [Cha88] (see also [Prz89b]). Following [Cha88] we also assume in this section that our rst order language contains in nitely many constants and/or functions.

De nition 4.1 (Substitutions) Suppose that G is a goal with variables x1 ; : : : ; xn . Whenever convenient, we will identify a substitution   fx1 jt1 ; : : : ; xn jtn g for variables in G with the equality formula:

9(x1 = t1 ^ : : : ^ xn = tn) in which all variables, except those that appear in G, are existentially quanti ed. It is easy to see that the last formula can be equivalently written in the form:

9(s1 = s2); where s1 and s2 are suitable terms. 2

2

De nition 4.2 (Constraints) By a constraint  we mean an inequality 8(t1 6= t2), where 8 quanti es some (perhaps none) of the variables occurring in the inequality, and t1 and t2 are terms. 2 4

This follows easily from the foldability problem studied in [PP89].

7

2

Clearly, 8(t1 6= t2 ) is equivalent to :9 (t1 = t2 ) and therefore constraints  can be simply viewed as negated substitutions , i.e.,   :.

Example 4.1 The following are examples of constraints: x= 6 g(y; f (t)); 8y (x =6 f (g(y; z))): 22 De nition 4.3 By a constrained logic program P we mean a nite set of universally quanti ed clauses of the form

A

L1 ; :::; Lm where m  0, A is a non-equality atom and Li 's are either non-equality literals or constraints. By a constrained goal G we mean a headless clause non-equality literals or constraints. 2

L1 ,..., Lk , where Li 's are either 2

De nition 4.4 ([Cha88]) A constraint   8(t1 6= t2) is valid if t1 and t2 cannot be uni ed. It is satis able if t1 and t2 cannot be uni ed by binding only universally quanti ed variables. 2 2

Example 4.2 The constraint 8y (g(t) 6= f (y)) is valid. The constraint 8y (g(t) 6= g(f (y))) is satis able, but not valid. The constraint 8y(g(t) = 6 g(y)) is not satis able. 2 2

4.1 Constrained SLS-resolution

Now we extend the de nition of SLS -resolution given in Section 2 by enabling it to handle constrained programs and goals. Let us choose any xed computation rule R (see [Llo87]), i.e., a rule that selects exactly one literal from any non-empty goal. We will assume, however, that the computation rule never selects satis able but not valid constraints. In other words, satis able but not valid constraints will be always marked as skipped. In order to extend the de nition of SLS-resolution to constrained programs and goals it suces to modify the de nition of SLS-trees of rank + 1 while keeping all the remaining de nitions unchanged:

De nition 4.5 (SLS-trees of rank + 1) The SLS-tree, SLS +1(G), of rank + 1 consists of all nodes (and labels) of the previously constructed SLS-tree, SLS (G), of rank together with all nodes (and labels) obtained by recursively applying the following resolution rules to all non-labeled leaves of SLS (G) and to their descendents. Let H = L1 ; : : : ; Lk be an arbitrary non-labeled leaf of SLS (G) (or a descendent thereof) and let L be the literal selected from H by the computation rule R (if one is selected). The immediate descendents (successors) of H in the tree SLS +1 (G) are de ned as follows: (i) If H is either empty or contains only satis able but not valid constraints i :

H

1 ; : : : ;  k

then H has no descendents and is a success leaf.

8

(ii) If L = A is a positive literal then the immediate descendents of H are { as usual { all goals K that can be obtained from the goal H by resolving H with (a variant of) one of the program clauses upon the atom A, using most general uni ers. If there are no such K 's, then H has no descendents and is a failure leaf. (iii) If L =  is a constraint and if  is valid then the only descendent of H is K = H ?fLg, i.e. the goal H with L removed. If  is unsatis able, then H has no descendents and is a failure leaf. We recall that R skips all satis able but non-valid constraints. (iv) If L = :A is a negative (non-equality) literal then we consider four cases:

{ If A is ground and the SLS-tree SLS ( A) is failed then H has precisely one descendent, namely, the node K = H ? fLg obtained by removing L from H ; { If A is ground and the SLS-tree SLS ( A) is successful then the node H has

no descendents and is called a failure leaf; { If A is not ground or if the SLS-tree SLS ( A) is oundered then the node H has no descendents and is a ounder leaf; { Otherwise, we mark the literal L in H as skipped and use the computation rule5 R to select, if possible, a new literal L0 and subsequently we apply the resolution steps (ii) { (iv) to the goal H , with L0 now acting as the literal selected by R. If all literals in the goal H were already marked as skipped then the node H has no descendents in SLS +1 (G) (and is not labeled). 2 2

All skip marks are removed once the construction of the SLS -tree SLS +1 (G) is completed. 2 2

We now extend the de nition of SLS-computed answer substitutions by adding the de nition of SLS-computed answer constraints:

De nition 4.6 (SLS-computed answer substitutions and constraints) If the SLStree for a goal G has a successful derivation, i.e., a derivation ending in a success node which is either empty or contains only satis able but not valid constraints i :

H

1 ; : : : ;  k

then the accumulated substitution , restricted to the variables in G, is called the SLScomputed answer substitution for G and the conjunction   1 ^ : : : ^ k of constraints is called the SLS-computed answer constraint6 . The full answer, i.e., the pair (; ), where  is the SLS-computed answer substitution and  is the SLS-computed answer constraint is called the SLS-computed answer. 2 2 5 Applied to the goal H from which all literals marked as skipped were removed. 6 Obviously, if k=0 then the answer constraint is simply true.

9

4.2 Constrained Partial Deductions

We now de ne the concept of constrained partial deduction, which generalizes (under the assumption of A-closedness) the notion of partial deduction de ned before:

De nition 4.7 (Constrained Partial Deduction) Suppose that P is a program, A is an atom, R is a computation rule and T is the SLS-tree for P [ A. Let Q1 ; : : : ; Qm

be non-root goals in T chosen so that each non-failing7 branch of T contains exactly one of them. For 0  i  m, let Ri be the resultant of the derivation of Qi from A. Then the set of clauses R1 ; : : : ; Rm is called a partial deduction of the atom A. If A is a nite set of atoms then a constrained partial deduction of P w.r.t. A is a constrained program P 0 obtained from P by:

 Removing from P all clauses whose heads unify with one of the atoms A 2 A, and,  Replacing them with all clauses of the form: B :; L1 ; : : : ; Lk where the clause B L1 ; : : : ; Lk is in P , A 2 A and   9(t1 = t2 ) is the most general uni er of A and B , and,

 Adding partial deductions of all atoms A 2 A. 2

2

Our rst result shows the declarative invariance of well-founded semantics under constrained partial deductions, i.e., it proves that the declarative meaning of the program P coincides with the declarative meaning of the program P 0 obtained from P by means of constrained partial deduction.

Theorem 4.1 (Declarative Soundness and Completeness) Suppose that P is a pro-

gram, R is a computation rule and Q is a goal. Let P 0 be a constrained partial deduction of P w.r.t. a nite set A of atoms. Then: (i) WF (P ) j= 9(Q)  WF (P 0 ) j= 9(Q);

(ii) WF (P ) j= 8(Q)  WF (P 0 ) j= 8(Q), for any substitution ;

(iii) WF (P ) j= :9(Q)  WF (P 0 ) j= :9(Q). 2

2

As we can see, the assumption of A-closedness in the above Theorem (and in the theorem that follows) has been removed. Our second result shows the procedural invariance of well-founded semantics under constrained partial deductions.

Theorem 4.2 (Procedural Soundness and Completeness) Suppose that P is a pro-

gram, R is a computation rule and Q is a goal. Let P 0 be a constrained partial deduction of P w.r.t. a nite set A of atoms. If none of the SLS-trees for P [ Q and P 0 [ Q is oundered, then: (i) SLS-tree for P [ 7

Q is successful i SLS-tree for P 0 [

I.e., neither in nite nor ending in a failure leaf.

10

Q is successful;

(ii) A substitution  is a maximal SLS-computed answer substitution for P [ only if

Q if and

(*) there exists a nite set f(i ; i )g1im of SLS-computed answers for P 0 [ such that: CET j= (1 ^ 1 ) _ : : : _ (m ^ m) $ 

Q

and  is a maximal substitution satisfying the condition (*); (iii) SLS-tree for P [

Q is failed i SLS-tree for P 0 [

Q is failed. 2

2

The authors are currently working towards the extension of the results contained in this paper to SLSF-resolution, i.e., SLS-resolution with Full (or constructive) negation introduced in [PD92]. This will allow us to eliminate from our results the assumption of non- oundering queries.

Acknowledgments

The authors are grateful to Jan Komorowski for the encouragement to write this paper and for helpful discussions. The authors are also grateful to all the participants of the logic programming seminar held in the Computer Science Department at the University of Linkoping in Sweden, and, particularly to Lars Degerstedt, Wlodek Drabent, Laurent Fribourg and Jan Maluszynski for their helpful comments and fruitful discussions.

References [Cha88]

D. Chan. Constructive negation based on the completed database. In R. Kowalski and K. Bowen, editors, Proceedings of the Fifth Logic Programming Symposium, pages 111{125, Cambridge, Mass., 1988. Association for Logic Programming, MIT Press. [Kom81] J. Komorowski. A Speci cation of an Abstract Prolog Machine and its Application to Partial Evaluation. PhD thesis, University of Linkoping, 1981. [Kom89] J. Komorowski. Synthesis of programs in the framework of partial deduction. Research report A-81, Abo Akademi, Abo, Finland, July 1989. [Llo87] J.W. Lloyd. Foundations of Logic Programming. Springer Verlag, New York, N.Y., second edition, 1987. [LS87] J.W. Lloyd and J.C. Shepherdson. Partial evaluation in logic programming. Research report CS-87-09, University of Bristol, 1987. (to appear in the Journal of Logic Programming). [PD92] T. C. Przymusinski and W. Drabent. Constructive negation for well-founded semantics. (in preparation), University of Linkoping, Sweden, 1992. [PP89] A. Pettorossi and M. Proietti. Decidability Results and Characterization of Strategies for the Development of Logic Programs. In Proc. Sixth Intl. Conf. on Logic Programming, pages 539{553, 1989. 11

[PP90]

H. Przymusinska and T. C. Przymusinski. Semantic issues in deductive databases and logic programs. In R. Banerji, editor, Formal Techniques in Arti cial Intelligence, pages 321{367. North-Holland, Amsterdam, 1990. [Prz89a] T. C. Przymusinski. Every logic program has a natural strati cation and an iterated xed point model. In Proceedings of the Eighth Symposium on Principles of Database Systems, pages 11{21. ACM SIGACT-SIGMOD, 1989. [Prz89b] T. C. Przymusinski. On constructive negation in logic programming. In Proceedings of the North American Logic Programming Conference, Cleveland, Ohio, October 1989, page (Addendum), Cambridge, Mass., 1989. Association for Logic Programming, MIT Press. [Prz93] T. C. Przymusinski. Well-founded semantics: Declarative and procedural view. Research report, UC Riverside, 1993. (in preparation). [Ros89] K. Ross. A procedural semantics for well founded negation in logic programs. In Proceedings of the Eighth Symposium on Principles of Database Systems, pages 22{33. ACM SIGACT-SIGMOD, 1989. [SZ87] P. Sestoft and A.V. Zamulin. Literature list for partial evaluation and mixed computation. In Proceedings of IFIP Workshop on Partial Evaluation and Mixed Computation. Denmark, 1987. [VGRS90] A. Van Gelder, K. A. Ross, and J. S. Schlipf. The well-founded semantics for general logic programs. Journal of the ACM, 1990. (to appear). Preliminary abstract appeared in Seventh ACM Symposium on Principles of Database Systems, March 1988, pp. 221{230.

12