Generated by GPT-5-mini| Sat4j | |
|---|---|
| Name | Sat4j |
| Title | Sat4j |
| Developer | INRIA, Eclipse Foundation |
| Released | 2004 |
| Programming language | Java |
| License | EPL, LGPL |
| Website | Eclipse SAT4J |
Sat4j is an open-source Java library providing satisfiability (SAT), pseudo-Boolean, and optimization solvers used in research and industry. It integrates with formal verification tools, model checkers, and constraint-based applications and is used in projects across academic institutions and corporate research labs.
Sat4j implements algorithms for propositional satisfiability, pseudo-Boolean reasoning, and MaxSAT solving and is leveraged in projects that include formal methods, software product lines, and configuration management. The library is integrated into ecosystems around projects like Eclipse Foundation, INRIA, Google Research, Microsoft Research, IBM Research and is used in toolchains developed at institutions such as École Polytechnique, University of Cambridge, Massachusetts Institute of Technology, Stanford University and ETH Zurich. Its applicability spans use in environments tied to tools like Z3, CVC4, MiniSAT, CryptoMiniSat and infrastructures including GitHub, Maven Central, Eclipse IDE and Apache Ant.
Development began in research groups associated with INRIA and later saw adoption through contributions by developers linked to Eclipse Foundation and various universities. Early work intersected with projects at University of Toulouse, University of Paris-Sud, CNRS, University of Oxford and collaborations with teams at Google, Facebook, Amazon Web Services and Microsoft. Sat4j evolved alongside solver research documented at conferences like SAT Conference, CADE, IJCAI, CP, FLoC and ICLP and has been cited in publications from ACM, IEEE, Springer, SIAM and Elsevier.
The architecture separates core solver engines, parser modules, and API layers that interoperate with systems such as Eclipse IDE, Maven, Gradle and continuous integration platforms like Jenkins, Travis CI and GitLab CI. Major components include a CNF parser with compatibility for formats used by DIMACS, an incremental SAT interface akin to interfaces in MiniSAT, a pseudo-Boolean module comparable to features in Glucose and Lingeling, and optimization modules comparable to MaxHS and Open-WBO. Integrations exist for model checking tools such as SPIN, NuSMV, UPPAAL and specification languages like SMT-LIB, TLA+ and Alloy.
Sat4j offers conflict-driven clause learning (CDCL) strategies, watched literal schemes, restarts, and heuristics influenced by research used in MiniSAT, Glucose, Chaff and RSAT. It supports pseudo-Boolean constraints, cardinality encodings, and MaxSAT optimization techniques comparable to Open-WBO and MaxHS. APIs permit incremental solving, assumption-based checks, and proof logging compatible with proof systems referenced in SAT Competition submissions and tools like DRAT-trim and ProofCheck. Performance tuning integrates with build systems such as Maven Central artifacts and IDE extensions in Eclipse IDE and NetBeans.
Common integration patterns include embedding Sat4j as a library in Java applications, plugins for Eclipse IDE, and adapters for verification pipelines built around Jenkins or Travis CI. It is used in static analysis tools at organizations like Coverity, research projects at Fraunhofer Society, NASA, European Space Agency and in academic toolchains at University of California, Berkeley, Princeton University, Cornell University and Imperial College London. Bindings and wrappers exist to interoperate with ecosystems such as Python through JNI-based bridges, Scala applications on the JVM, and service deployments in Kubernetes and Docker containers within cloud providers like Google Cloud Platform, Amazon Web Services and Microsoft Azure.
Benchmarking of Sat4j has been reported in comparative evaluations alongside MiniSAT, Glucose, Lingeling, CryptoMiniSat, MapleSAT, Open-WBO and MaxHS at venues like the SAT Competition and in studies from ACM SIGSOFT, IEEE Transactions on Computers, Journal of Automated Reasoning and Artificial Intelligence Journal. Results commonly highlight strengths in pseudo-Boolean and incremental scenarios similar to findings from teams at Saarland University, Karlsruhe Institute of Technology, University of Helsinki and University of Buenos Aires. Performance tuning and empirical evaluations appear in proceedings from CADE, CP, IJCAI and SAT.
Sat4j is distributed under licenses compatible with both open-source and some proprietary uses, with dual licensing historically involving EPL and LGPL terms and contributors associated with INRIA, Eclipse Foundation, CNRS, University of Toulouse and individual developers from organizations like Google, Facebook, IBM, Red Hat and SAP. Contributions are coordinated through repositories on platforms such as GitHub and through collaborations shown at workshops hosted by Dagstuhl, FLoC, CERN software events and academic summits at ICLR and NeurIPS where solver integration topics are discussed.
Category:Autonomous reasoning software