23,037 research outputs found
A Proof Theoretic View of Constraint Programming
We provide here a proof theoretic account of constraint programming that
attempts to capture the essential ingredients of this programming style. We
exemplify it by presenting proof rules for linear constraints over interval
domains, and illustrate their use by analyzing the constraint propagation
process for the {\tt SEND + MORE = MONEY} puzzle. We also show how this
approach allows one to build new constraint solvers.Comment: 25 page
Nominal Logic Programming
Nominal logic is an extension of first-order logic which provides a simple
foundation for formalizing and reasoning about abstract syntax modulo
consistent renaming of bound names (that is, alpha-equivalence). This article
investigates logic programming based on nominal logic. We describe some typical
nominal logic programs, and develop the model-theoretic, proof-theoretic, and
operational semantics of such programs. Besides being of interest for ensuring
the correct behavior of implementations, these results provide a rigorous
foundation for techniques for analysis and reasoning about nominal logic
programs, as we illustrate via examples.Comment: 46 pages; 19 page appendix; 13 figures. Revised journal submission as
of July 23, 200
Programming in logic without logic programming
In previous work, we proposed a logic-based framework in which computation is
the execution of actions in an attempt to make reactive rules of the form if
antecedent then consequent true in a canonical model of a logic program
determined by an initial state, sequence of events, and the resulting sequence
of subsequent states. In this model-theoretic semantics, reactive rules are the
driving force, and logic programs play only a supporting role.
In the canonical model, states, actions and other events are represented with
timestamps. But in the operational semantics, for the sake of efficiency,
timestamps are omitted and only the current state is maintained. State
transitions are performed reactively by executing actions to make the
consequents of rules true whenever the antecedents become true. This
operational semantics is sound, but incomplete. It cannot make reactive rules
true by preventing their antecedents from becoming true, or by proactively
making their consequents true before their antecedents become true.
In this paper, we characterize the notion of reactive model, and prove that
the operational semantics can generate all and only such models. In order to
focus on the main issues, we omit the logic programming component of the
framework.Comment: Under consideration in Theory and Practice of Logic Programming
(TPLP
Compactly generating all satisfying truth assignments of a Horn formula
As instance of an overarching principle of exclusion an algorithm is
presented that compactly (thus not one by one) generates all models of a Horn
formula. The principle of exclusion can be adapted to generate only the models
of weight . We compare and contrast it with constraint programming,
integer programming, and binary decision diagrams.Comment: Considerably improves upon the readibility of the previous versio
Constraint Propagation in Presence of Arrays
We describe the use of array expressions as constraints, which represents a
consequent generalisation of the "element" constraint. Constraint propagation
for array constraints is studied theoretically, and for a set of domain
reduction rules the local consistency they enforce, arc-consistency, is proved.
An efficient algorithm is described that encapsulates the rule set and so
inherits the capability to enforce arc-consistency from the rules.Comment: 10 pages. Accepted at the 6th Annual Workshop of the ERCIM Working
Group on Constraints, 200
- …