pacfix


Namepacfix JSON
Version 0.0.3 PyPI version JSON
download
home_pageNone
SummaryPAC-learning-based program systhesizer
upload_time2024-11-14 05:52:21
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseNone
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"
}
        
Elapsed time: 0.35302s