⊧ Gini: A fast SAT solver.
The Gini sat solver is a fast, clean SAT solver written in Go. It is to our knowledge the first ever performant pure-Go SAT solver made available.
This solver is fully open source, originally developped at IRI France.
Build/Install
For the impatient:
go install github.com/go-air/gini/...@latest
I recommend however building the package github.com/go-air/gini/internal/xo with bounds checking turned off. This package is all about anything-goes performance and is the workhorse behind most of the gini sat solver. It is also extensively tested and well benchmarked, so it should not pose any safety threat to client code. This makes a signficant speed difference (maybe 10%) on long running problems.
The SAT problem in 5 minutes
Usage
Our user guide shows how to solve SAT problems, circuits, do Boolean optimisation, use concurrency, using our distributed CRISP protocol, and more.
Citing Gini
Zenodo DOI based citations and download:
BibText:
@misc{scott_cotton_2019_2553490,
author = {Scott Cotton},
title = {go-air/gini: Sapeur},
month = jan,
year = 2019,
doi = {10.5281/zenodo.2553490},
url = {https://doi.org/10.5281/zenodo.2553490}
}