Results 1 
8 of
8
An Overview of HAL
, 1999
"... Experience using constraint programming to solve reallife problems has shown that finding an efficient solution to the problem often requires experimentation with different constraint solvers or even building a problemspecific constraint solver. HAL is a new constraint logic programming language e ..."
Abstract

Cited by 45 (24 self)
 Add to MetaCart
Experience using constraint programming to solve reallife problems has shown that finding an efficient solution to the problem often requires experimentation with different constraint solvers or even building a problemspecific constraint solver. HAL is a new constraint logic programming language expressly designed to facilitate this process. It provides a welldefined solver interface, mutable global variables for implementing a constraint store, and dynamic scheduling which support combining, extending and writing new constraint solvers. Equally importantly, HAL supports semioptional type, mode and determinacy declarations. These allow natural constraint specification by means of type overloading, better compiletime error checking and generation of more efficient runtime code.
Promoting Constraints to FirstClass Status
 in Proc. of the 1st International Conference on Computational Logic
, 2000
"... This paper proposes to promote constraints to firstclass status. In contrast to constraint propagation, which performs inference on values of variables, firstclass constraints allow reasoning about the constraints themselves. This lets the programmer access the current state of a constraint and ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
(Show Context)
This paper proposes to promote constraints to firstclass status. In contrast to constraint propagation, which performs inference on values of variables, firstclass constraints allow reasoning about the constraints themselves. This lets the programmer access the current state of a constraint and control a constraint's behavior directly, thus making powerful new programming and inference techniques possible, as the combination of constraint propagation and rewriting constraints a la term rewriting. Firstclass constraints allow for true meta constraint programming. Promising applications in the field of combinatorial optimization include early unsatisfiability detection, constraint reformulation to improve propagation, garbage collection of redundant but not yet entailed constraints, and finding minimal inconsistent subsets of a given set of constraints for debugging immediately failing constraint programs.
A compositional Semantics for CHR
 In PPDP ’05: Proceedings of the 7th ACM SIGPLAN international conference on Frühwirth, Laurent Michel, Christian Schulte 39 Principles and practice of declarative programming
, 2005
"... Constraint Handling Rules (CHR) is a committedchoice declarative language which has been designed for writing constraint solvers. A CHR program consists of multiheaded guarded rules which allow to rewrite constraints into simpler ones until a solved form is reached. ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Constraint Handling Rules (CHR) is a committedchoice declarative language which has been designed for writing constraint solvers. A CHR program consists of multiheaded guarded rules which allow to rewrite constraints into simpler ones until a solved form is reached.
15819K: Logic Programming Lecture 1 Logic Programming
, 2006
"... In this first lecture we give a brief introduction to logic programming. We also discuss administrative details of the course, although these are not included here, but can be found on the course web page. 1 1.1 Computation vs. Deduction Logic programming is a particular way to approach programming. ..."
Abstract
 Add to MetaCart
(Show Context)
In this first lecture we give a brief introduction to logic programming. We also discuss administrative details of the course, although these are not included here, but can be found on the course web page. 1 1.1 Computation vs. Deduction Logic programming is a particular way to approach programming. Other paradigms we might compare it to are imperative programming or functional programming. The divisions are not always clearcut—a functional language may have imperative aspects, for example—but the mindset of various paradigms is quite different and determines how we design and reason about programs. To understand logic programming, we first examine the difference between computation and deduction. To compute we start from a given expression and, according to a fixed set of rules (the program) generatee a result. For example, 15 + 26 → (1 + 2 + 1)1 → (3 + 1)1 → 41. To deduce we start from a conjecture and, according to a fixed set of rules (the axioms and inference rules), try to construct a proof of the conjecture. So computation is mechanical and requires no ingenuity, while deduction is a creative process. For example, a n + b n � = c n for n> 2,... 357 years of hard work..., QED. Philosophers, mathematicians, and computer scientists have tried to unify the two, or at least to understand the relationship between them for centuries. For example, George Boole 2 succeeded in reducing a certain class
L27.2 Constraint Logic Programming
, 2006
"... In this lecture we sketch constraint logic programming which generalizes the fixed structure of socalled uninterpreted function and predicate symbols of Horn logic. A common application is more flexible logic programming with arithmetic and finite domains. Higherorder logic programming is another ..."
Abstract
 Add to MetaCart
(Show Context)
In this lecture we sketch constraint logic programming which generalizes the fixed structure of socalled uninterpreted function and predicate symbols of Horn logic. A common application is more flexible logic programming with arithmetic and finite domains. Higherorder logic programming is another example where techniques from constraint logic programming are important. 27.1 Arithmetic One of the main motivations for constraint logic programming comes from the awkward and nonlogical treatment of arithmetic in Prolog. For example, a naive implementation of the Fibonacci function would be the following Prolog program. fib(0,1). fib(1,1). fib(N,F): N> = 2, N1 is N1, fib(N1,F1),
Università di Bologna and
"... Constraint Handling Rules (CHR) are a committedchoice declarative language which has been designed for writing constraint solvers. A CHR program consists of multiheaded guarded rules which allow one to rewrite constraints into simpler ones until a solved form is reached. CHR has received a conside ..."
Abstract
 Add to MetaCart
Constraint Handling Rules (CHR) are a committedchoice declarative language which has been designed for writing constraint solvers. A CHR program consists of multiheaded guarded rules which allow one to rewrite constraints into simpler ones until a solved form is reached. CHR has received a considerable attention, both from the practical and from the theoretical side. Nevertheless, due the use of multiheaded clauses, there are several aspects of the CHR semantics which have not been clarified yet. In particular, no compositional semantics for CHR has been defined so far. In this paper we introduce a fixpoint semantics which characterizes the input/output behavior of a CHR program and which is andcompositional, that is, which allows to retrieve the semantics of a conjunctive query from the semantics of its components. Such a semantics can be used as a basis to define incremental and modular analysis and verification tools.
Finite Domain Constraint Solver Learning
"... In this paper, we present an abstract framework for learning a finite domain constraint solver modeled by a set of operators enforcing a consistency. The behavior of the consistency to be learned is taken as the set of examples on which the learning process is applied. The best possible expression o ..."
Abstract
 Add to MetaCart
In this paper, we present an abstract framework for learning a finite domain constraint solver modeled by a set of operators enforcing a consistency. The behavior of the consistency to be learned is taken as the set of examples on which the learning process is applied. The best possible expression of this operator in a given language is then searched. We instantiate this framework to the learning of boundconsistency in the indexical language of GnuProlog.