FaCiLe: A Functional Constraint Library

La page d'accueil de FaCiLe est aussi disponible en français.

Description

FaCiLe is a constraint programming library on integer and integer set finite domains written in OCaml. It offers all usual facilities to create and manipulate finite domain variables, arithmetic expressions and constraints (possibly non-linear), built-in global constraints (difference, cardinality, sorting etc.) and search and optimization goals. FaCiLe allows as well to build easily user-defined constraints and goals (including recursive ones), making pervasive use of OCaml higher-order functionals to provide a simple and flexible interface for the user. As FaCiLe is an OCaml library and not "yet another language", the user benefits from type inference and strong typing discipline, high level of abstraction, modules and objects system, as well as native code compilation efficiency, garbage collection and replay debugger, all features of OCaml (among many others) that allow to prototype and experiment quickly: modeling, data processing and interface are implemented with the same powerful and efficient language. For a more complete description, you may consult the preface and foreword of the online documentation.

Availability

FaCiLe is distributed under the terms of the GNU Lesser General Public License:

Current version 1.1 has been released in April 2005 and should work with OCaml 3.02 up to version 3.12.

A bug fix version 1.1.1 for OCaml 4.00 and higher has been released in december 2015.

Version 1.1.3 fixing a bug in arithmetic constraints has been released in december 2016.

http://facile.recherche.enac.fr/distrib

Installation is described in the README file of the distribution and in the foreword. Documentation is also available online. Questions, bug reports, comments... are welcome and should be mailed to:

facileATrechercheDOTenacDOTfr

Some slides (in french) presenting FaCiLe are also available.

Last Update: