Skip to main content

PAC-learning-based program systhesizer

Project description

pacfix-python

Python re-implementation of pacfix.

Install

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 directory.

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.

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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pacfix-0.0.2.tar.gz (53.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pacfix-0.0.2-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file pacfix-0.0.2.tar.gz.

File metadata

  • Download URL: pacfix-0.0.2.tar.gz
  • Upload date:
  • Size: 53.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for pacfix-0.0.2.tar.gz
Algorithm Hash digest
SHA256 2c98c82068a5be8a7103cd239e813d4dfe67c1f3cbb0fe39228fdc085e90c91e
MD5 4809db7d0dba142cddf064af594e04c6
BLAKE2b-256 8fe5ac3a8826946c4ef422210b1aed2678666e33b46e33b6cd0a53adedbc410b

See more details on using hashes here.

File details

Details for the file pacfix-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: pacfix-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for pacfix-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fd16b70b18816c20760bac32e6f016a6e658467ffc3748c0a902ef5531474d47
MD5 81e4ab827ec2fe1eccb72ffe0264e3be
BLAKE2b-256 55f57cfa1f1f269825eb5ef38673f45609d7d93d0aa67b91447bd096bac7b98a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page