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.pyusesspec_2_smv.pythat translates
the extended SMV format into the standardSMVformat
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_swigrunmake_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:135line toout = aiger_not(src->outputs[0].lit);.
Should be in yourPATH. -
smvflattenfrom 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.