kotlin-satlib: SAT solver wrappers for Kotlin

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/Kotlin

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarLint - Clean code begins in your IDE with SonarLint
  • SaaSHub - Software Alternatives and Reviews
  • kotlin-satlib

    :moyai: SAT solver wrappers for Kotlin

    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.

  • ipasir

    The Standard Interface for Incremental Satisfiability Solving

    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.

  • cadical

    CaDiCaL SAT Solver

    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!

  • cryptominisat

    An advanced SAT solver

    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!

  • jnisat

    Java JNI bindings for the PicoSat and MiniSat SAT solvers

    The project itself was originally based on https://github.com/mmaroti/jnisat.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts