This library provides CLP(B), Constraint Logic Programming over Boolean variables. It can be used to model and solve combinatorial problems such as verification, allocation and covering tasks.
CLP(B) is an instance of the general CLP(X) scheme (section 8), extending logic programming with reasoning over specialised domains.
The implementation is based on reduced and ordered Binary Decision Diagrams (BDDs).
Benchmarks and usage examples of this library are available from:
https://
www.metalevel.at/clpb/
We recommend the following references for citing this library in scientific publications:
@inproceedings{Triska2016, author = "Markus Triska", title = "The {Boolean} Constraint Solver of {SWI-Prolog}: System Description", booktitle = "FLOPS", series = "LNCS", volume = 9613, year = 2016, pages = "45--61" } @article{Triska2018, title = "Boolean constraints in {SWI-Prolog}: A comprehensive system description", journal = "Science of Computer Programming", volume = "164", pages = "98 - 115", year = "2018", note = "Special issue of selected papers from FLOPS 2016", issn = "0167-6423", doi = "https://doi.org/10.1016/j.scico.2018.02.001", url = "http://www.sciencedirect.com/science/article/pii/S0167642318300273", author = "Markus Triska", keywords = "CLP(B), Boolean unification, Decision diagrams, BDD" }
These papers are available from
https://
www.metalevel.at/swiclpb.pdf
and
https://
www.metalevel.at/boolean.pdf
respectively.