Extended SMV format for synthesis is SMV +
- comments to specify signals to be synthesized
- ability to write specifications in PLTL, omega-RE, and pure automata.
Read format description in format.md.
These repository contains two conversion tools:
-
From extended SMV format to SYNTCOMP GR1:
- the main script file is
spec_2_aag.py
spec_2_aag.py
usesspec_2_smv.py
that translates
the extended SMV format into the standardSMV
format
that can be then later understood by AIGER tools
- the main script file is
-
From models in the SYNTCOMP GR1 format into model checking tasks in the HWMCC format.
-
swig
in the directoryaiger_swig
runmake_swig.sh
(tested with version2.0.11
, likely works with any2.0.x
) -
aiger tools http://fmv.jku.at/aiger/
Tested with version1.9.9
.
Important: changeaigor.c:135
line toout = aiger_not(src->outputs[0].lit);
.
Should be in yourPATH
. -
smvflatten
from http://fmv.jku.at/smvflatten/
Tested with version1.2.5
.
Should be in yourPATH
. -
GOAL
Tested with version from2014.11.17
.
Run:
./configure.py
It creates local configuration files config.py
and config.sh
.
You will be asked to edit those files.
Run:
./spec_2_aag.py <smv_spec_file>
Examples are in folder tests
.
./run_tests.py
or
./run_tests.py --aisy
In the second version, the generated AIGER files will be given to aisy
for synthesizing.
NOTE: if you get import error -- run setup.sh
from aisy
.
Ayrat Khalimov, Leo Prikler extended it to support omega-Reg, PLTL, and GR1 specifications.
Gmail me: ayrat.khalimov.
Originally appeared in paper "Specification Format for Reactive Synthesis Problems" at SYNT'15.