Library for moving between sequential circuits AIGs and DFAs.
Project description
py-aiger-dfa
Python library for converting between AIG circuits and DFAs.
Table of Contents
Installation
If you just need to use aiger_dfa
, you can just run:
$ pip install py-aiger-dfa
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 main entry points for using this library are the dfa2aig
and
aig2dfa
functions. DFAs are represented using the
dfa package. Familiarity with the
dfa
, py-aiger
, and py-aiger-bv
packages is assumed.
DFA to AIG
An example of going from a DFA
to an AIG
object
is shown below.
from dfa import DFA
from aiger_dfa import dfa2aig
my_dfa = DFA(
start=0,
inputs={0, 1},
label=lambda s: (s % 4) == 3,
transition=lambda s, c: (s + c) % 4,
)
my_aig, relabels = dfa2aig(my_dfa)
Now circ
is an AIG
and relabels
is a mapping from the inputs,
states, and outputs of my_dfa
to their 1-hot encoded
counterparts in my_aig
.
relabels
has the following schema:
relabels = {
'inputs': .. , # Bidict from 1-hot index to dfa input.
'outputs': .. , # Bidict from 1-hot index to dfa output.
'states': .. , # Bidict from 1-hot index to dfa state.
}
where bidict
refers to https://bidict.readthedocs.io/en/master/.
AIG to DFA
The inverse of dfa2aig
is aig2dfa
. Using the same example.
from aiger_dfa import aig2dfa
my_dfa2 = aig2dfa(my_aig, relabels=relabels)
assert my_dfa2.label((1,0,0,1,1,0)) == my_dfa.label((1,0,0,1,1,0))
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
Built Distribution
Hashes for py_aiger_dfa-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99505827603434d99670f45d93776c1cb8dfefa2d87d71d003d7d6d603389e3a |
|
MD5 | a04ef3c8a8da2ae6fbb40605db34bf93 |
|
BLAKE2b-256 | 8b77ac717940cf024e7601975a8244de8f12ee13dbb281a43fa7144a93f3bd03 |