{ "info": { "author": "Felix Kutzner", "author_email": "felixkutzner@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# PyCSCL 0.2.0\nThe Cute SAT Constraint encoder Library for Python 3\n\nPyCSCL is a collection of propositional logic constraint encoders. You can use it\ne.g. to reduce instances of\n[NP-complete problems](https://en.wikipedia.org/wiki/NP-completeness) to instances\nof the\n[Boolean satisifability (SAT) problem](https://en.wikipedia.org/wiki/Boolean_satisfiability_problem),\nbenefitting from the availability of powerful off-the-shelf SAT\nsolvers.\n\nThough PyCSCL is designed not to depend on a specific SAT solver interface,\nit contains a simple and easy-to-use binding for\nSAT solvers implementing the \n[IPASIR](https://github.com/biotomas/ipasir) interface.\n\nThe versioning scheme of PyCSCL is [Semantic Versioning 2.0.0](https://semver.org).\n\n## Installing PyCSCL\n\n### Prerequisites\n\nPyCSCL has no dependencies beyond Python 3.7.\n\n### Release packages\n\nPyCSCL releases are distributed on the [Python Package Index](https://pypi.org/project/pycscl/).\nTo be consistent with package naming conventions, the PyCSCL package is named `pycscl`.\nTo install the latest PyCSCL release package, you can simply use `pip`:\n\n```\npython3 -m pip install pycscl\n```\n\n### Custom packages\n\nAlternatively, you can check out this repository and install PyCSCL\nby creating a package yourself. Navigate to the PyCSCL directory and issue the command\n\n```\npython3 setup.py sdist \n```\n\nThis will create a package `pycscl-.tar.gz` file in the\ndirectory `dist`. Now, you can install your custom PyCSCL package \nby running\n\n```\npython3 -m pip install /dist/pycscl-.tar.gz\n```\n\n## Documentation\n\n* PyCSCL [tutorial](Tutorial.md)\n* [Examples](#examples)\n* pydoc\n\n## Encoders\n\n##### Cardinality (at-most-k) constraint encoders\n- Binomial encoding\n- LTSeq encoding\n- Commander encoding\n\nPackage: `cscl.cardinality_constraint_encoders`\n\n##### Gate constraint encoders\n- AND, OR, binary XOR gates\n- Binary MUX gates\n- Half adder and full adder gates\n\nPackage: `cscl.basic_gate_encoders`\n\n##### Bitvector constraint encoders\n- Bitvector AND, OR, XOR gates\n- Ripple-carry bitvector adder and (2's complement) subtractor gates\n- Parallel bitvector multiplier gate\n- Unsigned bitvector divider and modulo gate\n- Signed (2's complement) and unsigned bitvector comparison gates\n\nPackage: `cscl.bitvector_gate_encoders`\n\n## Examples\n- `cscl_examples.factorization`: [integer factorization](https://en.wikipedia.org/wiki/Integer_factorization) problem encoder\n- `cscl_examples.sudoku`: SAT-based [Sudoku](https://en.wikipedia.org/wiki/Sudoku) solver\n- `cscl_examples.smt_qfbv_solver` (under construction): simple QF_BV\n [SMT](https://en.wikipedia.org/wiki/Satisfiability_modulo_theories) solver", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/fkutzner/PyCSCL", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pycscl", "package_url": "https://pypi.org/project/pycscl/", "platform": "", "project_url": "https://pypi.org/project/pycscl/", "project_urls": { "Homepage": "https://github.com/fkutzner/PyCSCL" }, "release_url": "https://pypi.org/project/pycscl/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.2.0" }, "last_serial": 4921878, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c8089563d161151d8eb3741bb35811c1", "sha256": "b8cf6f058665a7c485ac350f8e24fffd3e0652309d02ede62999c8022df29786" }, "downloads": -1, "filename": "pycscl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c8089563d161151d8eb3741bb35811c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51616, "upload_time": "2019-02-24T16:27:32", "url": "https://files.pythonhosted.org/packages/c8/04/fa09ac1db99dfba83aa3ae916faaa11c7d8192d55815d7d3ecf8dd772b46/pycscl-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f8bf921861337bce69ae187cd3a7cdde", "sha256": "cc8cca22d8c3ec211f87fb1c53f281f7e4b62559a6f18fb5baf6e7b58d1c18a7" }, "downloads": -1, "filename": "pycscl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f8bf921861337bce69ae187cd3a7cdde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53419, "upload_time": "2019-03-10T16:18:52", "url": "https://files.pythonhosted.org/packages/33/e7/492dcb1b4ceb8a402131b75b6a28d773451e3065a87124cd40fd9a7a6838/pycscl-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f8bf921861337bce69ae187cd3a7cdde", "sha256": "cc8cca22d8c3ec211f87fb1c53f281f7e4b62559a6f18fb5baf6e7b58d1c18a7" }, "downloads": -1, "filename": "pycscl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f8bf921861337bce69ae187cd3a7cdde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53419, "upload_time": "2019-03-10T16:18:52", "url": "https://files.pythonhosted.org/packages/33/e7/492dcb1b4ceb8a402131b75b6a28d773451e3065a87124cd40fd9a7a6838/pycscl-0.2.0.tar.gz" } ] }