--- id: python-sat version: "1.9.dev14" license: MIT license_treatment: permissive maintenance: active --- # python-sat — A Python library for prototyping with SAT oracles License: permissive · Maintenance: active · Downloads: 281.8K/mo ## What it is and what it does PySAT is a Python wrapper around state-of-the-art Boolean satisfiability solvers, designed for researchers and developers who need to prototype algorithms that rely on SAT solving. It abstracts the complexity of calling low-level solver implementations by providing a simple Python interface, and includes support for cardinality and pseudo-Boolean constraint encodings. The package is intended for building higher-level tools—MaxSAT solvers, MUS/MCS extractors, or domain-specific applications—that repeatedly invoke a SAT oracle as part of their logic. The library depends only on six and is actively maintained. Installation requires compilation of native wheels, which are available across macOS, Linux, and Windows architectures. It has no known security vulnerabilities and carries a permissive MIT license. Use it for: - Prototype a MaxSAT solver that iteratively calls a SAT oracle to find optimal assignments - Extract minimal unsatisfiable subsets or minimal correction sets from constraint problems - Encode cardinality constraints and solve combinatorial optimization problems in Python - Build a verification or model-checking tool that relies on SAT solving as a core component - Experiment with SAT-based algorithms for planning, scheduling, or configuration problems ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. PySAT wraps modern Boolean satisfiability solvers and provides cardinality and pseudo-Boolean encodings, letting you call SAT oracles from Python code. Yes, if you need to prototype SAT-based algorithms or build tools that rely on SAT solving. The package is actively maintained, has no known vulnerabilities, and carries a permissive license. Medium install friction from native compilation is a minor trade-off for access to modern solvers. Not recommended if you only need a pure-Python SAT solver or have no need for low-level solver integration. ## Install pip install python-sat uv add python-sat poetry add python-sat ## Installing python-sat Before you install: Medium install friction due to compiled wheel distributions across multiple Python versions and platforms. The package is actively maintained with a recent release and a stable repository. License in practice: MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions. Quickstart: pip install python-sat import python_sat # Create and solve a SAT problem # See https://pysathq.github.io for detailed usage examples Requires a C compiler and build tools to compile native wheels for your platform during installation. Verify before relying: - Which specific SAT solvers are bundled or available through the package - Whether the package supports incremental solving workflows - Performance characteristics compared to calling solvers directly - Concrete API examples for cardinality and pseudo-Boolean encodings ## Package facts - License: MIT (permissive) - Python support: unspecified - Install friction: medium - Maintenance: active - Downloads: 281.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags SAT solver python, boolean satisfiability library, MaxSAT solver, MUS extractor, constraint satisfaction python, SAT oracle wrapper, cardinality encoding, sat-solving, constraint-satisfaction, research-tool [View on SkillFed](https://skillfed.io/packages/python-sat) · [View on PyPI](https://pypi.org/project/python-sat/)