## Constructive Negation Using Typed Existence Properties (1998)

Venue: | Proceedings of PLILP/ALP98 |

Citations: | 2 - 2 self |

### BibTeX

@TECHREPORT{Cleary98constructivenegation,

author = {John Cleary and Lunjin Lu},

title = {Constructive Negation Using Typed Existence Properties},

institution = {Proceedings of PLILP/ALP98},

year = {1998}

}

### OpenURL

### Abstract

. A method for extracting positive information from negative goals is proposed. The method makes use of knowledge about the existence of solutions of predicates and about the types of variables. It strictly generalises earlier work in this area. It can be used as a construction rule or as a simplification rule. As a construction rule it does not involve an SLD-derivation of the negated sub-goal and so is applicable during compilation. As a simplification rule it prunes unsatisfiable goals without doing an explicit satisfiability test. Keywords: constructive negation, existence properties, type system 1 Introduction The "negation by failure" rule, NAF for short, may lead to floundering when negative goals contain variables. The reason is that NAF doesn't allow negative goals to bind variables. To overcome this limitation, Chan introduces the "constructive negation" rule which allows non-ground negative goals to bind variables in the same way as positive ones [2, 3]. The basic idea i...

### Citations

294 | Abstract interpretation and application to logic programs
- Cousot, Cousot
- 1992
(Show Context)
Citation Context ...g the completeness of the method with respect to a given program and a set of typed existence properties which can be either declared by the programmer or inferred from the program by static analysis =-=[6]-=-. 4 Conclusion The use of existence properties in [4] for the constructive negation of arithmetic goals has been generalised. This was done by generalising the notion of existence properties and by ex... |

240 |
Tree automata. Akademiai Kiado
- Gecseg, Steinby
- 1984
(Show Context)
Citation Context ...ingleton types are regular term languages which are are closed under set intersection, union and complement. The inclusion and equivalence problems of regular term languages are known to be decidable =-=[12]-=-. So, the validities of oe v j and oe j j can be effectively tested. Example 3. Continue examples 1 and 2. We have = fl(person) = fpeter; john; maryg = fl(list(none)) = f[ ]g = fl(list(all)) = f[ ]; \... |

131 |
Constructive negation based on the completed database
- Chan
- 1988
(Show Context)
Citation Context ...gative goals to bind variables. To overcome this limitation, Chan introduces the "constructive negation" rule which allows non-ground negative goals to bind variables in the same way as posi=-=tive ones [2, 3]-=-. The basic idea is that answers to : Q are obtained by negating answers to Q. Given : Q, a frontier of a derivation tree for Q is first obtained. Answers to : Q are then obtained from the frontier as... |

121 | Negation and constraint logic programming
- Stuckey
- 1995
(Show Context)
Citation Context ...not necessary to deal with complex goals with explicit quantifiers outside the constraint part. Stuckey provides a constructive negation method for constraint logic programs over arbitrary structures =-=[16]-=-. Stuckey's method which is sound and complete with respect to the three-valued consequences of the completion of the program can be thought of as a generalisation of Chan's. Stuckey uses the followin... |

99 |
Logic programs as types of logic programs
- FruÌˆhwirth, Shapiro, et al.
- 1991
(Show Context)
Citation Context ...otes f\Gamma1; 1g plus the set of reals, int denotes f\Gamma1; 1g plus the set of integers, int L;H denotes the integer interval [L::H] and real L;H denotes the closed real interval [L::H]. Following =-=[11]-=- and [13], we define types by type clauses. A type clause is either of the form f(x 1 ; \Delta \Delta \Delta ; xn ) : c(fi 1 ; \Delta \Delta \Delta ; fi m ) / x 1 : G 1 ; \Delta \Delta \Delta ; xn : G... |

80 | Solving systems of set constraints
- Aiken, Wimmers
- 1992
(Show Context)
Citation Context ...ot typed, it can be thought of as being typed by all. A special function value maps a typed term to a type, called a singleton type. value(T ) with T being a typed term is treated as a set expression =-=[1]-=-. = fl(value(x : oe)) def = = fl(oe) = fl(value(f(T 1 ; \Delta \Delta \Delta ; Tn ))) def = ff(t 1 ; \Delta \Delta \Delta ; t n ) j t i 2 = fl(value(T i ))g = fl(value(T )) is a regular term language ... |

54 | What is failure? An approach to constructive negation
- Drabent
- 1994
(Show Context)
Citation Context ... a finite number of substitutions, Ma/luszy'nski and Naslund's approach sometimes needs to return an infinite number of fail substitutions. Drabent defines SLDFA resolution over the Herbrand universe =-=[8]-=-. Chan's first method works only when the negated sub-goal has a finite number of answers. SLDFA overcomes this by constructing answers for the negative goal from a finite number of answers to the neg... |

44 |
Dependent types in logic programming
- Pfenning
- 1992
(Show Context)
Citation Context ...rts inclusion, parametric and overloading polymorphism. The type system is expressive and decidable. A formal presentation can be found in the full version of the paper [5]. The reader is referred to =-=[15]-=- for more on type systems in logic programming. A type is a finite expression denoting a possibly infinite set of ground terms. Specifically, a type denotes a set of ground terms which is a regular te... |

33 |
An extension of constructive negation and its application in coroutining
- Chan
- 1989
(Show Context)
Citation Context ...gative goals to bind variables. To overcome this limitation, Chan introduces the "constructive negation" rule which allows non-ground negative goals to bind variables in the same way as posi=-=tive ones [2, 3]-=-. The basic idea is that answers to : Q are obtained by negating answers to Q. Given : Q, a frontier of a derivation tree for Q is first obtained. Answers to : Q are then obtained from the frontier as... |

17 |
Fail substitutions for negation as failure
- luszynski, Naslund
- 1989
(Show Context)
Citation Context ...ram and is derived from the program. Ma/luszy'nski and Naslund put forward another approach to constructive negation which allows a negative goal to directly return fail substitutions, as its answers =-=[14]-=-. Since answers to negative goals can't in general be represented by a finite number of substitutions, Ma/luszy'nski and Naslund's approach sometimes needs to return an infinite number of fail substit... |

16 |
Type inference problems: A survey
- Tiuryn
- 1990
(Show Context)
Citation Context ...erent program variables, each fi 0 --- is a type parameter, and each G --- is either a type parameter or a type constructor applied to type parameters. Type clauses are required to be type preserving =-=[17]-=- in that any type parameter occurring in the body also occurs in the head. Example 2. Let Cons d = fnat; man; woman; person; listg. The programmer may define types by the following. 0 : nat / % D1 s(x... |

13 |
Efficient run-time type checking of typed logic programs
- Dart, Zobel
- 1992
(Show Context)
Citation Context ...eter and john are members of man while D7 means that mary is a member of woman. S1 and S2 declare that man and woman are subtypes of person. User-defined type clauses induce a type program \Phi as in =-=[7]-=-. \Phi consists of the user-defined type clauses, f(x 1 ; \Delta \Delta \Delta ; xn ) : all / x 1 : all; \Delta \Delta \Delta ; xn : all for each function symbol f=n, and type clauses t : c f / for an... |

12 | A First-order Theory of Types and Polymorphism in Logic Programming
- Wu
- 1992
(Show Context)
Citation Context ...mma1; 1g plus the set of reals, int denotes f\Gamma1; 1g plus the set of integers, int L;H denotes the integer interval [L::H] and real L;H denotes the closed real interval [L::H]. Following [11] and =-=[13]-=-, we define types by type clauses. A type clause is either of the form f(x 1 ; \Delta \Delta \Delta ; xn ) : c(fi 1 ; \Delta \Delta \Delta ; fi m ) / x 1 : G 1 ; \Delta \Delta \Delta ; xn : Gn or of t... |

11 |
Deduced relevant types and constructive negation
- Foo, Rao, et al.
(Show Context)
Citation Context ...x is a free variable, bold letters denote vectors of variables, y and z are disjoint and variables in z don't occur in y. Foo et. al propose an approach for constructive negation for Datalog programs =-=[10]-=-. A Datalog program with negation is first transformed by adding typing goals before its negative goals. Each argument of a negated sub-goal corresponds to a typing goal, called the relevant type of t... |

4 |
Constructive Negation of Arithmetic Constraints Using DataFlow Graphs
- Cleary
- 1997
(Show Context)
Citation Context ...to do a satisfiability test when combining :9y:c with other constraints. Cleary makes use of domain knowledge and existence properties of arithmetic constraints to construct answers to negative goals =-=[4]-=-. There are usually functional dependencies between arguments to an arithmetic constraint. Let add(x; y; z) denote addition on the domain of integers, for any integers x and y, then there is a unique ... |

1 |
Constructive negation by pruning
- Fage
- 1997
(Show Context)
Citation Context ... from a finite number of answers to the negated sub-goal. Fage proposes a simple concurrent pruning mechanism over standard SLD derivation trees for constructive negation in constraint logic programs =-=[9]-=-. Two derivation trees are concurrently constructed. The computed answers from one of the trees are used to prune the nodes of the other. Fage's method admits an efficient implementation as it is not ... |