# Constraing Logic Programming This skeleton notebook pre-loads SWI-Prolog's libraries for _constraint logic programming_. The libraries are: - library(dif) provides sound term inequality. [Documentation](http://www.swi-prolog.org/pldoc/doc_for?object=dif/2) - library(clpfd) reasons about variables with a _finite domain_ (a set of integers). [Documentation](http://www.swi-prolog.org/pldoc/man?section=clpfd) - library(clpb) reasons about boolean variables (0 and 1). [Documentation](http://www.swi-prolog.org/pldoc/man?section=clpb) - library(chr) provides a _committed-choice rule-based language_ designed for writing constraint solvers and is particularly useful for providing application-specific constraints. It has been used in many kinds of applications, like scheduling, model checking, abduction, and type checking, among many others. [Documentation](http://www.swi-prolog.org/pldoc/man?section=chr) - library(when) provides lower-level _coroutining_ facilities. [Documentation](http://www.swi-prolog.org/pldoc/doc_for?object=when/2)
:- use_module(library(dif)). % Sound inequality :- use_module(library(clpfd)). % Finite domain constraints :- use_module(library(clpb)). % Boolean constraints :- use_module(library(chr)). % Constraint Handling Rules :- use_module(library(when)). % Coroutining %:- use_module(library(clpq)). % Constraints over rational numbers