{"id":17316697,"url":"https://github.com/liffiton/pyminisolvers","last_synced_at":"2025-08-23T19:45:45.883Z","repository":{"id":14920213,"uuid":"17644415","full_name":"liffiton/PyMiniSolvers","owner":"liffiton","description":"A Python API for the MiniSat and MiniCard constraint solvers.","archived":false,"fork":false,"pushed_at":"2025-06-22T18:53:31.000Z","size":2501,"stargazers_count":22,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-22T19:37:59.101Z","etag":null,"topics":["constraints","minisat","python-api","solver"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liffiton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-03-11T20:08:27.000Z","updated_at":"2025-06-22T18:53:34.000Z","dependencies_parsed_at":"2025-04-14T15:04:20.408Z","dependency_job_id":"e36b7dd3-9024-4268-8e33-5d60392854f6","html_url":"https://github.com/liffiton/PyMiniSolvers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/liffiton/PyMiniSolvers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liffiton%2FPyMiniSolvers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liffiton%2FPyMiniSolvers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liffiton%2FPyMiniSolvers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liffiton%2FPyMiniSolvers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liffiton","download_url":"https://codeload.github.com/liffiton/PyMiniSolvers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liffiton%2FPyMiniSolvers/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267150483,"owners_count":24043474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["constraints","minisat","python-api","solver"],"created_at":"2024-10-15T13:13:50.719Z","updated_at":"2025-07-26T10:39:10.498Z","avatar_url":"https://github.com/liffiton.png","language":"C++","readme":"PyMiniSolvers\n=============\n\nPyMiniSolvers is a Python API for the [MiniSat](http://minisat.se/) and\n[MiniCard](http://git.io/minicard) constraint solvers.  It accesses the solvers\nvia shared libraries, reducing overhead and allowing for efficient incremental\nsolving.  Its interfaces closely match the interfaces of each tool's Solver\nclass, providing flexible and powerful access to most of the solvers' standard\ncapabilities.  Additionally, an extended \"SubsetSolver\" interface is provided\nfor each tool, simplifying reasoning about subsets of a constraint set (e.g.,\nsolving arbitrary subsets of the added constraints, extracting UNSAT cores,\netc.).\n\nBasic usage:\n```python\n\u003e\u003e\u003e import minisolvers\n\u003e\u003e\u003e S = minisolvers.MinisatSolver()\n\u003e\u003e\u003e S.new_vars(4)  \n\u003e\u003e\u003e for clause in [1], [-2], [-1, 2, -3], [3, 4]:\n...     S.add_clause(clause)  \n\n\u003e\u003e\u003e S.solve()\nTrue\n\n\u003e\u003e\u003e list(S.get_model())\n[1, 0, 0, 1]\n\n\u003e\u003e\u003e S.add_clause([-1, 2, 3, -4])\n\n\u003e\u003e\u003e S.solve()\nFalse\n```\n\nFor further examples, see the documentation.\n\nAPI Documentation\n-----------------\n\nhttps://pyminisolvers.readthedocs.io/\n\nSetup\n-----\n\nRequirements:\n - Python 3.9+\n - A standard build environment (make, gcc, etc.)\n\nTo build the shared libraries:\n\n    $ make\n\nTo test the API:\n\n    $ make test\n\nOr manually run the tests:\n\n    $ python3 -m doctest -v minisolvers.py\n    $ python3 test_minisolvers.py\n\nLicense\n-------\n\nThis code is licensed under the MIT license.  See LICENSE for details.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliffiton%2Fpyminisolvers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliffiton%2Fpyminisolvers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliffiton%2Fpyminisolvers/lists"}