Python library to convert between AIGER and CNF
Project description
py-aiger-cnf
Python library to convert between AIGER and CNF
Installation
If you just need to use aiger_cnf
, you can just run:
$ pip install py-aiger-cnf
For developers, note that this project uses the poetry python package/dependency management tool. Please familarize yourself with it and then run:
$ poetry install
Usage
The primary entry point for using aiger_cnf
is the aig2cnf
function which, unsurprisingly, maps AIG
objects to CNF
objects.
import aiger
from aiger_cnf import aig2cnf
x, y, z = map(aiger.atom, ('x', 'y', 'z'))
expr = (x & y) | ~z
cnf = aig2cnf(expr)
The CNF
object is a NamedTuple
with the following three fields:
clauses
: A list of tuples of ints, e.g.,[(1,2,3), (-1, 2)]
. Each integer represents a variable's id, with the sign indicating the polarity of the variable.symbol_table
: A bidict from strings to variable ids.max_var
: The maximum (in absolute value) index present inclauses
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
py-aiger-cnf-0.1.2.tar.gz
(3.9 kB
view hashes)
Built Distribution
Close
Hashes for py_aiger_cnf-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95826eeab5053e34aae61e470808bf04b58df208e2ba043b1913a7c027185f4e |
|
MD5 | 8ce865e313d684dd264d0fde64e5dfa0 |
|
BLAKE2b-256 | 3765361ff0f05c5d870f179ba2eb1c00f32281fc5ee89b5f5af07a9aa7e9dc22 |