{
"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"
}
]
}