Our great sponsors
-
Hi folks, I want to present you a small, yet powerful, library (https://github.com/Lipen/kotlin-satlib) that provides an API for SAT solvers and implements some common operations for constraint programming, such as: handling finite-domain variables (e.g.: int in a small range; custom enum; set of values), storing named "variables" in the context, encoding common logic operations over SAT literals (Tseytin-encoded, when necessary), declaring cardinality constraints (for now, only Totalizer encoding is supported, but it works pretty well in general), solving AllSAT.
-
The generic interface of the SAT solver is not based on the standard IPASIR one, but is more pragmatic and user-friendly. It consists of the most commonly used operations performed with the SAT solver:
-
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
Alongside with the SAT solver interface and its extensions, `kotlin-satlib` provides wrappers for native SAT solvers (these days, most of them are written in C/C++) implemented using JNI technology. Currently, the solvers included are: MiniSat, Glucose, Cadical and CryptoMiniSat. Sadly, `kotlin-satlib` won't work out-of-the-box, you have to provide it with some external SAT solver, either in the form of a library or a binary. Luckily, there are build instructions for each of the supported SAT solver, both for Linux and Windows. Checkout the README!
-
Alongside with the SAT solver interface and its extensions, `kotlin-satlib` provides wrappers for native SAT solvers (these days, most of them are written in C/C++) implemented using JNI technology. Currently, the solvers included are: MiniSat, Glucose, Cadical and CryptoMiniSat. Sadly, `kotlin-satlib` won't work out-of-the-box, you have to provide it with some external SAT solver, either in the form of a library or a binary. Luckily, there are build instructions for each of the supported SAT solver, both for Linux and Windows. Checkout the README!
-
The project itself was originally based on https://github.com/mmaroti/jnisat.
Related posts
- CreuSAT - A formally verified SAT solver written in Rust and verified with Creusot
- CreuSAT - A formally verified SAT solver written in Rust and verified with Creusot
- CreuSAT - A formally verified SAT solver written in Rust and verified with Creusot
- CreuSAT。用Rust编写并通过Creusot验证的正式验证的SAT求解器 (CreuSAT: Formally verified SAT solver written in Rust and verified with Creusot)
- CreuSAT: Formally verified SAT solver written in Rust and verified with Creusot