Mircea Marin, Wolfgang Schreiner
Research Institute for Symbolic Computation (RISC-Linz), Johannes Kepler
University, A-4040 Linz, Austria, mircea.marin@risc.uni-linz.ac.at, wolfgang.schreiner@risc.uni-linz.ac.at
Tetsuo Ida, Institute for Information Sciences and Electronics, University
of Tsukuba, Tsukuba 305-8573, Japan,
ida@score.is.tsukuba.ac.jp
Abstract
The need for combining different solvers into a system that is able
to process
constraints that can not be solved by a single solver is widely recognized.
Of
particular interest is the design of a distributed system based on
a flexible
architecture that supports an easy integration and cooperation of new
constraint
solvers.
CFLP(Constraint Functional Logic Programming system) is a distributed
software
system consisting of a functional logic interpreter running on one
machine and
various specialized constraint solvers that may run on different machines
in a
network environment. A scheduler running as a separate process serves
to coordinate
the constraint solving processes.
The system is fully implemented in Mathematica 3.0 as a collection of
packages
which extend the solving capabilities of a normal Mathematica session.
The
functional logic interpreter is based on an extension of the calculi
LNC (Lazy
Narrowing Calculus) and Higher-Order LNC, which are known to be sound
and complete
for many equational theories of practical interest. Since Mathematica
is based on a
higher order term rewriting evaluation strategy, the implementation
of the calculus
is straightforwardly supported. The calculus was extended in two main
directions:
* special inference rules for handling equational constraints over
various domains
were added,
* the capability to specify AND and OR parallelism.
A computational model for solving these constraints in a distributed
manner was
designed and implemented. The communication among the system components
is based on
the MathLink library.
The constraint solvers integrated in the current implementation are
implemented
on top of the constraint solving libraries provided with Mathematica.
It provides
an easy-to-use tool for solving problems in equational theories that
can be
presented by conditional term rewriting systems. The user interface
allows the user
to specify the configuration of the distributed system, to type in
formulas in
mathematical notation, to design his own equational theory, and to
examine the
evolution of the constraint solving process.
The system is currently under development in the frame of the joint
project,
having as collaborators the institute RISC-Linz (Bruno Buchberger,
Wolfgang
Schreiner, Hoon Hong, Mircea Marin) and SCORE (Tetsuo Ida, Aart Middeldorp).
It is
available as a collection of Mathematica packages and notebooks that
also represent
the documented code of CFLP.