Name | pacfix JSON |
Version |
0.0.3
JSON |
| download |
home_page | None |
Summary | PAC-learning-based program systhesizer |
upload_time | 2024-11-14 05:52:21 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.6 |
license | None |
keywords |
apr
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# pacfix-python
Python re-implementation of [pacfix](https://github.com/pslhy/pacfix/tree/main).
## Install
```shell
python3 -m pip install pacfix
# Or, you can install from source code
# python3 -m pip install .
pysmt-install --z3
```
## Usage
To see how it works, check out the examples in the [examples](./examples/) directory.
```shell
cd examples/example01
python3 -m pacfix run -i ./mem -l live-variables.txt
```
## Inputs
### live variables file
Specify the live variables file using `-l` or `--live-vars` [live-variables.txt](./examples/example01/live-variables.txt).
```
1 x int
2 y int
3 z bool
4 b int
5 c int
```
Each line lists a variable's ID, name, and type, separated by spaces.
### Input directory
Specify the input directory using `-i` or `--input-dir` [input-dir](./examples/example01/mem).
The input directory should contain neg and pos subdirectories, each with valuation files.
```
[begin]
1 7
2 1
3 0
4 8
5 6
[end]
[begin]
1 1
2 7
3 1
4 8
5 -6
[end]
```
Each file should list variable IDs and their corresponding values. Multiple iterations can be included, with each iteration separated by [begin] and [end].
## Output
Specify the output file using `-o` or `--output`.
If not specified, the output will be printed to the standard output.
```
[metadata] [live-variables] [total 5] [int 4]
[metadata] [hypothesis-space] [original 1857] [final 1]
[metadata] [valuation] [neg 3] [pos 48] [uniq 51] [init-neg 4] [init-pos 54] [non-uniq 58]
[metadata] [pac] [delta 0.01] [eps 0.09029745462721749]
[metadata] [pac-no-uniq] [delta 0.01] [eps 0.07939948596531193]
[final] --------------
[invariant] [expr (c != 0)]
```
### Output as SMT format
Specify the output directory as `-s` or `--output-smt`.
If not specified, it will not be stored.
```
python3 -m pacfix run -i ./mem -l live-variables.txt -s ./smt
```
In `./smt/0.smt`
```
(set-logic QF_IDL)
(declare-fun c () Int)
(assert (let ((.def_0 (= c 0))) (let ((.def_1 (not .def_0))) .def_1)))
(check-sat)
```
### Debug log
You can enable debug log with `-d` option.
Raw data
{
"_id": null,
"home_page": null,
"name": "pacfix",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "Seungheon Han <shhan@unist.ac.kr>",
"keywords": "apr",
"author": null,
"author_email": "Seungheon Han <shhan@unist.ac.kr>",
"download_url": "https://files.pythonhosted.org/packages/c1/5f/74a9ce8427f3ea270d2b1e523aea25caf5a3bbe37b20b5008183b1bb15f6/pacfix-0.0.3.tar.gz",
"platform": null,
"description": "# pacfix-python\nPython re-implementation of [pacfix](https://github.com/pslhy/pacfix/tree/main).\n\n## Install\n```shell\npython3 -m pip install pacfix\n# Or, you can install from source code\n# python3 -m pip install .\npysmt-install --z3\n```\n\n## Usage\nTo see how it works, check out the examples in the [examples](./examples/) directory.\n\n```shell\ncd examples/example01\npython3 -m pacfix run -i ./mem -l live-variables.txt\n```\n\n## Inputs\n### live variables file\nSpecify the live variables file using `-l` or `--live-vars` [live-variables.txt](./examples/example01/live-variables.txt).\n\n```\n1 x int\n2 y int\n3 z bool\n4 b int\n5 c int\n```\nEach line lists a variable's ID, name, and type, separated by spaces.\n\n### Input directory\nSpecify the input directory using `-i` or `--input-dir` [input-dir](./examples/example01/mem).\n\nThe input directory should contain neg and pos subdirectories, each with valuation files.\n```\n[begin]\n1 7\n2 1\n3 0\n4 8\n5 6\n[end]\n[begin]\n1 1\n2 7\n3 1\n4 8\n5 -6\n[end]\n```\nEach file should list variable IDs and their corresponding values. Multiple iterations can be included, with each iteration separated by [begin] and [end].\n\n## Output\nSpecify the output file using `-o` or `--output`. \n\nIf not specified, the output will be printed to the standard output.\n\n```\n[metadata] [live-variables] [total 5] [int 4]\n[metadata] [hypothesis-space] [original 1857] [final 1]\n[metadata] [valuation] [neg 3] [pos 48] [uniq 51] [init-neg 4] [init-pos 54] [non-uniq 58]\n[metadata] [pac] [delta 0.01] [eps 0.09029745462721749]\n[metadata] [pac-no-uniq] [delta 0.01] [eps 0.07939948596531193]\n[final] --------------\n[invariant] [expr (c != 0)]\n```\n\n### Output as SMT format\nSpecify the output directory as `-s` or `--output-smt`.\n\nIf not specified, it will not be stored.\n\n\n```\npython3 -m pacfix run -i ./mem -l live-variables.txt -s ./smt\n```\nIn `./smt/0.smt`\n\n```\n(set-logic QF_IDL)\n(declare-fun c () Int)\n(assert (let ((.def_0 (= c 0))) (let ((.def_1 (not .def_0))) .def_1)))\n(check-sat)\n```\n\n### Debug log\nYou can enable debug log with `-d` option.",
"bugtrack_url": null,
"license": null,
"summary": "PAC-learning-based program systhesizer",
"version": "0.0.3",
"project_urls": {
"GitHub": "https://github.com/hsh814/pacfix-python"
},
"split_keywords": [
"apr"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e52ddb415690889076a7dd4e1740593d95b3139f90c61dcd961ab45b6d3106e7",
"md5": "a247ff3e6ad1b7bc4332caf6db94c65e",
"sha256": "577825d060c4b1e1023086f7cd0d96301474f25c9511890c523979f83f8115e3"
},
"downloads": -1,
"filename": "pacfix-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a247ff3e6ad1b7bc4332caf6db94c65e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 10473,
"upload_time": "2024-11-14T05:52:18",
"upload_time_iso_8601": "2024-11-14T05:52:18.295402Z",
"url": "https://files.pythonhosted.org/packages/e5/2d/db415690889076a7dd4e1740593d95b3139f90c61dcd961ab45b6d3106e7/pacfix-0.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c15f74a9ce8427f3ea270d2b1e523aea25caf5a3bbe37b20b5008183b1bb15f6",
"md5": "0d1f7653208d3b098277b205e833a67e",
"sha256": "85692a6928f1331e764276e5d2d2ec0fb7560300f994395e2d4b71f74020f9be"
},
"downloads": -1,
"filename": "pacfix-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "0d1f7653208d3b098277b205e833a67e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 54292,
"upload_time": "2024-11-14T05:52:21",
"upload_time_iso_8601": "2024-11-14T05:52:21.699608Z",
"url": "https://files.pythonhosted.org/packages/c1/5f/74a9ce8427f3ea270d2b1e523aea25caf5a3bbe37b20b5008183b1bb15f6/pacfix-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-14 05:52:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hsh814",
"github_project": "pacfix-python",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pacfix"
}