https://github.com/go-air/gini
A fast SAT solver
https://github.com/go-air/gini
artificial-intelligence boolean-formulas circuit-sat concurrent dependencies fuzzing logic-circuit logic-programming resolution sat-solver testing verification
Last synced: 10 days ago
JSON representation
A fast SAT solver
- Host: GitHub
- URL: https://github.com/go-air/gini
- Owner: go-air
- License: mit
- Created: 2016-07-23T20:30:18.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-08-26T22:27:22.000Z (over 4 years ago)
- Last Synced: 2024-06-18T14:15:30.993Z (over 1 year ago)
- Topics: artificial-intelligence, boolean-formulas, circuit-sat, concurrent, dependencies, fuzzing, logic-circuit, logic-programming, resolution, sat-solver, testing, verification
- Language: Go
- Homepage:
- Size: 583 KB
- Stars: 148
- Watchers: 12
- Forks: 16
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# ⊧ 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.
[](https://godoc.org/github.com/go-air/gini)
[Google Group](https://groups.google.com/d/forum/ginisat)
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
[The SAT Problem](docs/satprob.md)
## Usage
Our [user guide](docs/manual.md) 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:
[](https://zenodo.org/badge/latestdoi/64034957)
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}
}
```