Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Spot
Spot
Commits
7ade9794
Commit
7ade9794
authored
Nov 04, 2021
by
Alexandre DuretLutz
Browse files
* NEWS: Some cleanup, in preparation for the release.
parent
5a9c8aad
Changes
1
Hide whitespace changes
Inline
Sidebyside
NEWS
View file @
7ade9794
...
...
@@ 10,36 +10,41 @@ New in spot 2.9.8.dev (not yet released)
Commandline tools:
 ltlsynt now accepts only one of the ins or outs options
to be given and will deduce the value of this other one.
 ltlsynt learned printgamehoa to output its internal parity
game in the HOA format (with an extension described below).
 ltlsynt aiger option now takes an optional argument indicating
how the bdd and states are to be encoded in the aiger output.
The option has to be given in the form
iteisopboth[+ud][+dc][+sub0sub1sub2] where the first
only obligatory argument decides whether "ifthenelse" ("ite")
or irreduciblesumofproducts ("isop") is to be used.
"both" executes both strategies and retains the smaller circuits.
The additional options are for finetuning. "ud" also encodes the
dual of the conditions and retains the smaller circuits.
"dc" computes if for some inputs we do not care whether the
output is high or low and try to use this information to compute
a smaller circuit. "subX" indicates different strategies to find
common subexpressions, with "sub0" indicating no extra computations.
 ltlsynt verify checks the computed strategy or aiger circuit
against the specification.
 ltlsynt decompose=yesno determines whether or not the algorithm
should try to decompose the formula into subformulas and generate
a strategy for each subformula before recombining them into a
circuit.
 ltlsynt simplify=nobisimbwoasatbisimsatbwoasat
specifies how to simplify the synthesized controler.
 ltlsynt has been seriously overhauled, while trying to
preserve backward compatibility. Below is just a summary
of the main uservisible changes. Most of the new options
are discussed on https://spotdev.lrde.epita.fr/ltlsynt.html
+ ltlsynt now accepts only one of the ins or outs options to
be given and will deduce the value of this other one.
+ ltlsynt learned printgamehoa to output its internal parity
game in the HOA format (with an extension described below).
+ ltlsynt aiger option now takes an optional argument indicating
how the bdd and states are to be encoded in the aiger output.
The option has to be given in the form
iteisopboth[+ud][+dc][+sub0sub1sub2] where the first only
obligatory argument decides whether "ifthenelse" ("ite") or
irreduciblesumofproducts ("isop") is to be used. "both"
executes both strategies and retains the smaller circuits. The
additional options are for finetuning. "ud" also encodes the
dual of the conditions and retains the smaller circuits. "dc"
computes if for some inputs we do not care whether the output is
high or low and try to use this information to compute a smaller
circuit. "subX" indicates different strategies to find common
subexpressions, with "sub0" indicating no extra computations.
+ ltlsynt learned verify to check the computed strategy or aiger
circuit against the specification.
+ ltlsynt now has a decompose=yesno option to specify if
the specification should be decomposed into independent
subspecifications, the controller of which can then be glued
together to satisfy the input specification.
+ ltlsynt learned simplify=nobisimbwoasatbisimsatbwoasat
to specifies how to simplify the synthesized controler.
 ltl2tgba, autfilt, dstar2tgba, and randaut learned a buchi
option, or b for short. This outputs Büchi automata without
...
...
@@ 63,48 +68,42 @@ New in spot 2.9.8.dev (not yet released)
ltlcross '{owl21 ltl2nba}owl21 ltl2nba f %f>%O' ...
Library:
 Spot now provides convenient function to create and solve games.
The functions are located in twaalgos/game.hh. Additional
functions related to the application to reactive synthesis are
in twaalgos/synthesis.hh.
 A new class called aig is introduced to represent
andinvertergraphs, which is useful for synthesis.
 Historically, Spot labels automata by Boolean formulas over
atomic propositions. These Boolean formulas are represented
as BDDs using the BuDDy library. Since this implementation is
not thread safe, Spot wasn't able, until now, to integrate
parallel algorithms. To bypass this limitation, we introduce the
cube data structure. This structure aims to replace BDDs
everywhere parallelism is required. Contrary to BDDs, this
structure is not able to represent complex boolean formulae, but
can represent very simple disjunctive form of boolean formulae
and can be used in a multithreaded context.
Since both the BDDbased and the cubebased implementations have
benefits and drawbacks, we opted to keep sidebyside the
historical implementation and the new one. As a consequence:
twacube and kripkecube are the new versions of twa and kripke.
We provide conversion back and forth throught the following
functions: twacube_to_twa, twa_to_twa, product_to_twa, and
kripkecube_to_twa. The equivalence between a twa and a twacube
can be checked using are_equivalent.
functions related to the application to reactive synthesis are in
twaalgos/synthesis.hh.
 A new class called aig represent an andinvertergraphs, and is
currently used during synthesis. (twaalgos/aiger.hh)
 Some new *experimental* classes, called "twacube" and "kripkecube"
implement a way to store automata or Kripke structures without
using BDDs as labels. Instead they use a structure called cube,
that can only encode a conjunction of litterals. Avoiding BDDs
(or rather, avoiding the BuDDy library) in the API for automata
makes it possible to build multithreaded algorithms.
/!\ Currently these classes should be considered as experimental,
and their API is very likely to change in a future version.
Functions like twacube_to_twa(), twa_to_twacube(), can be used
to bridge between automata with BDD labels, and automata with
cube labels.
In addition to the previous conversion, we implemented various
stateoftheart algorithms: bloemen.16.ppopp, bloemen.16.hvc,
evangeslita.12.atva, renault.13.lpar, holzmann.11.ieee. In order
to ease the manipulation of these algorithms we introduce a
factory mc_instanciator, that provide a nice abstraction for launching,
stateoftheart multithreaded emptinesscheck algorithms:
[bloemen.16.ppopp], [bloemen.16.hvc], [evangeslita.12.atva],
[renault.13.lpar], [holzmann.11.ieee] (see doc/spot.bib).
The mc_instanciator class provides an abstraction for launching,
pinning, and stopping threads inside of parallel modelchecking
algorithms. One should note that for performances and genericity
issues, all these algorithms are templated.
algorithms.
Finally, since all these algorithms are templated, a refactoring
of the ltsmin structure has been done in order to introduce the
spins_interface which describes the functions exported by a PINS
file. With this refactoring, we can retrieve both a kripke or a
kripkecube from a PINS file.
The class ltsmin_model class, providing support for loading
various models that follow ltsmin's PINS interinterface, has
been adjusted and can now produce either a kripke instance, or
a kripkecube instance.
 The postprocessor::set_type() method can now accept
options postprocessor::Buchi and postprocessor::GeneralizedBuchi.
...
...
@@ 124,7 +123,7 @@ New in spot 2.9.8.dev (not yet released)
postprocessor::set_type(postprocessor::BA)
by
by
postprocessor::set_type(postprocessor::Buchi)
postprocessor::set_pref(postprocessor::Small
...
...
@@ 154,7 +153,7 @@ New in spot 2.9.8.dev (not yet released)
be simplied to {0}, but the oppose rewriting can be useful as
well. (Issue #418.)

t
he parity_game class has been removed, now any twa_graph_ptr that

T
he parity_game class has been removed, now any twa_graph_ptr that
has a parity max odd acceptance and a "stateplayer" property is
considered to be a parity game.
...
...
@@ 297,10 +296,10 @@ New in spot 2.9.8.dev (not yet released)
See https://spot.lrde.epita.fr/ipynb/games.html and
https://spot.lrde.epita.fr/tut40.html for examples.
 Bindings for functions related to synt
eth
is and aigcircuits.
 Bindings for functions related to synt
hes
is and aigcircuits.
See https://spot.lrde.epita.fr/ipynb/synthesis.html
 spot::twa::prop_set was previously abs
t
ent from the Python
 spot::twa::prop_set was previously absent from the Python
bindings, making it impossible to call make_twa_graph() for copying
a twa. It is now available as spot.twa_prop_set (issue #453).
Also for convenience, the twa_graph.__copy__() method, called by
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment