80,432 research outputs found
Formulas as Programs
We provide here a computational interpretation of first-order logic based on
a constructive interpretation of satisfiability w.r.t. a fixed but arbitrary
interpretation. In this approach the formulas themselves are programs. This
contrasts with the so-called formulas as types approach in which the proofs of
the formulas are typed terms that can be taken as programs. This view of
computing is inspired by logic programming and constraint logic programming but
differs from them in a number of crucial aspects.
Formulas as programs is argued to yield a realistic approach to programming
that has been realized in the implemented programming language ALMA-0 (Apt et
al.) that combines the advantages of imperative and logic programming. The work
here reported can also be used to reason about the correctness of non-recursive
ALMA-0 programs that do not include destructive assignment.Comment: 34 pages, appears in: The Logic Programming Paradigm: a 25 Years
Perspective, K.R. Apt, V. Marek, M. Truszczynski and D.S. Warren (eds),
Springer-Verlag, Artificial Intelligence Serie
Constraint Programming viewed as Rule-based Programming
We study here a natural situation when constraint programming can be entirely
reduced to rule-based programming. To this end we explain first how one can
compute on constraint satisfaction problems using rules represented by simple
first-order formulas. Then we consider constraint satisfaction problems that
are based on predefined, explicitly given constraints. To solve them we first
derive rules from these explicitly given constraints and limit the computation
process to a repeated application of these rules, combined with labeling.We
consider here two types of rules. The first type, that we call equality rules,
leads to a new notion of local consistency, called {\em rule consistency} that
turns out to be weaker than arc consistency for constraints of arbitrary arity
(called hyper-arc consistency in \cite{MS98b}). For Boolean constraints rule
consistency coincides with the closure under the well-known propagation rules
for Boolean constraints. The second type of rules, that we call membership
rules, yields a rule-based characterization of arc consistency. To show
feasibility of this rule-based approach to constraint programming we show how
both types of rules can be automatically generated, as {\tt CHR} rules of
\cite{fruhwirth-constraint-95}. This yields an implementation of this approach
to programming by means of constraint logic programming. We illustrate the
usefulness of this approach to constraint programming by discussing various
examples, including Boolean constraints, two typical examples of many valued
logics, constraints dealing with Waltz's language for describing polyhedral
scenes, and Allen's qualitative approach to temporal logic.Comment: 39 pages. To appear in Theory and Practice of Logic Programming
Journa
A Constraint-based Mathematical Modeling Library in Prolog with Answer Constraint Semantics
Constraint logic programming emerged in the late 80's as a highly declarative
class of programming languages based on first-order logic and theories with
decidable constraint languages, thereby subsuming Prolog restricted to equality
constraints over the Herbrand's term domain. This approach has proven extremely
successfull in solving combinatorial problems in the industry which quickly led
to the development of a variety of constraint solving libraries in standard
programming languages. Later came the design of a purely declarative front-end
constraint-based modeling language, MiniZinc, independent of the constraint
solvers, in order to compare their performances and create model benchmarks.
Beyond that purpose, the use of a high-level modeling language such as MiniZinc
to develop complete applications, or to teach constraint programming, is
limited by the impossibility to program search strategies, or new constraint
solvers, in a modeling language, as well as by the absence of an integrated
development environment for both levels of constraint-based modeling and
constraint solving. In this paper, we propose to solve those issues by taking
Prolog with its constraint solving libraries, as a unified relation-based
modeling and programming language. We present a Prolog library for high-level
constraint-based mathematical modeling, inspired by MiniZinc, using subscripted
variables (arrays) in addition to lists and terms, quantifiers and iterators in
addition to recursion, together with a patch of constraint libraries in order
to allow array functional notations in constraints. We show that this approach
does not come with a significant computation time overhead, and presents
several advantages in terms of the possibility of focussing on mathematical
modeling, getting answer constraints in addition to ground solutions,
programming search or constraint solvers if needed, and debugging models within
a unique modeling and programming environment
A calculus for higher-order concurrent constraint programming with deep guards
We present a calculus providing an abstract operational semantics forhigher-order concurrent constraint programming. The calculus isparameterized with a first-order constraint system and provides first-class abstraction, guarded disjunction, committed-choice, deepguards, dynamic creation of unique names, and constraint communication.The calculus comes with a declarative sublanguage for which computation amounts to equivalence transformation of formulas. The declarative sublanguage can express negation. Abstractions are referred to by names, which are first-class values. This way we obtain a smooth and straight forward combination of first-order constraints with higher-order programming. Constraint communication is asynchronous and exploits the presence of logic variables. It provides a notion of state that is fully compatible with constraints and concurrency. The calculus serves as the semantic basis of Oz, a programming language and system under development at DFKI
Declarative Programming with Intensional Sets in Java Using JSetL
Intensional sets are sets given by a property rather than by enumerating
their elements. In previous work, we have proposed a decision procedure for a
first-order logic language which provides Restricted Intensional Sets (RIS),
i.e., a sub-class of intensional sets that are guaranteed to denote
finite---though unbounded---sets. In this paper we show how RIS can be
exploited as a convenient programming tool also in a conventional setting,
namely, the imperative O-O language Java. We do this by considering a Java
library, called JSetL, that integrates the notions of logical variable, (set)
unification and constraints that are typical of constraint logic programming
languages into the Java language. We show how JSetL is naturally extended to
accommodate for RIS and RIS constraints, and how this extension can be
exploited, on the one hand, to support a more declarative style of programming
and, on the other hand, to effectively enhance the expressive power of the
constraint language provided by the library
Hybrid Rules with Well-Founded Semantics
A general framework is proposed for integration of rules and external first
order theories. It is based on the well-founded semantics of normal logic
programs and inspired by ideas of Constraint Logic Programming (CLP) and
constructive negation for logic programs. Hybrid rules are normal clauses
extended with constraints in the bodies; constraints are certain formulae in
the language of the external theory. A hybrid program is a pair of a set of
hybrid rules and an external theory. Instances of the framework are obtained by
specifying the class of external theories, and the class of constraints. An
example instance is integration of (non-disjunctive) Datalog with ontologies
formalized as description logics.
The paper defines a declarative semantics of hybrid programs and a
goal-driven formal operational semantics. The latter can be seen as a
generalization of SLS-resolution. It provides a basis for hybrid
implementations combining Prolog with constraint solvers. Soundness of the
operational semantics is proven. Sufficient conditions for decidability of the
declarative semantics, and for completeness of the operational semantics are
given
A complete axiomatization of a theory with feature and arity constraints
CFT is a recent constraint system providing records as a logical data structure for logic programming and for natural language processing. It combines the rational tree system as defined for logic programming with the feature tree system as used in natural language processing. The formulae considered in this paper are all first-order-logic formulae over a signature of binary and unary predicates called features and arities, respectively. We establish the theory CFT by means of seven axiom schemes and show its completeness. Our completeness proof exhibits a terminating simplification system deciding validity and satisfiability of possibly quantified record descriptions
Encapsulated search and constraint programming in Oz
Oz is an attempt to create a high-level concurrent programming language providing the problem solving capabilities of logic programming (i.e., constraints and search). Its computation model can be seen as a rather radical extension of the concurrent constraint model providing for higher-order programming, deep guards, state, and encapsulated search. This paper focuses on the most recent extension, a higher-order combinator providing for encapsulated search. The search combinator spawns a local computation space and resolves remaining choices by returning the alternatives as first-class citizens. The search combinator allows to program different search strategies, including depth-first, indeterministic one solution, demand-driven multiple solution, all solutions, and best solution (branch and bound) search. The paper also discusses the semantics of integer and finite domain constraints in a deep guard computation model
- …