JSetL is a Java library that combines the objectoriented
programming paradigm of Java with valuable concepts of CLP languages, such
as logical variables, lists, unification,
constraint solving, nondeterminism. The library provides also sets
and set constraints like those found in CLP(SET)
(see here).
Unification may involve logical variables, as well as list and set objects
("set unification"). Constraints concern basic settheoretical operations
(e.g., membership, union, intersection, etc.), as well as equality, inequality
and integer comparison operations.
Set constraints are solved using a complete solver that accounts for partially
specified sets (i.e., sets containing unknown elements).
Equality, inequality and comparison constraints on integers are dealt with as
FiniteDomain Constraints.
JSetL has been developed at the Department
of Mathematics of the University of
Parma (Italy). It is completely written in Java. The full Java code
of the JSetL library, along with sample programs and related documents,
is available at this page. The library is free software; you can redistribute
it and/or modify it under the terms of
the GNU Lesser General Public License.
The latest releases of JSetL have been partially supported by the GNCS project
2012 "Specifiche insiemistiche eseguibili e loro verifica formale".
