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.4.tar.gz (9.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.4-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pacfix-0.0.4.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pacfix-0.0.4.tar.gz
Algorithm Hash digest
SHA256 3779c8df6f849e3b67ada4f9a351cafdae924a27d0ffb77911e292a12e902e36
MD5 336e4e22a35cf533292173dc991c4759
BLAKE2b-256 f364b7590256a4a995b87913f47d253640da7a5e0a8ab68d58e7288924c8e08a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pacfix-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pacfix-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6c3593bea9e0f4bac7222afee9ff56356e75b7019dd34ad1890b18beba54f5d3
MD5 c102459e47ccbbf607f14d8aa50d2f81
BLAKE2b-256 3b0b8f71954cecd6db8739b4c0c352c5fff72093e035ce07d5d172e35a2bc507

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