Conclusions and Future Work
CFLP is a software system consisting of a functional logic interpreter and a distributed constraint-solving system, which provides support for solving systems of equations over various constraint domains. The functional logic component allows the user to define his own abstractions in an easy and comfortable way. In the current implementation we have integrated solvers for linear equations and equations with invertible functions, polynomial equations, differential equations, and partial differential equations. The constraint solvers are all implemented on top of the constraint-solving capabilities of Mathematica.
We intend to further develop the system by integrating more constraint-solving capabilities. The constraint solvers may act either on disjoint sets of constraints or on overlapping subsystems. Currently, the constraint solvers are not allowed to act simultaneously on a leaf node of the constraint tree. An optimization would be to act simultaneously with more solvers on the same node in situations when the subsystems of equations are non-overlapping.
Because of the higher-order extensions of the functional logic programming framework (function variables and -abstractions), the search space of lazy narrowing is very large. We have identified and implemented various refinements of a lazy narrowing calculus that perform a more deterministic search for solutions for classes of functional logic programs of practical interest. We intend to continue our research and identify better refinements.
The system is intended to be used by researchers in functional and logic programming languages, and by researchers in constraint solving who are willing to make use of its expressive and computational power.
Copyright © 2001 Wolfram Media, Inc. All rights reserved.